diff options
author | Noel Power <noel.power@suse.com> | 2013-05-09 09:51:28 +0100 |
---|---|---|
committer | Noel Power <noel.power@suse.com> | 2013-05-09 09:54:41 +0100 |
commit | cbd1a89676f39135ed2e9c47d20475b2053289b9 (patch) | |
tree | b981860d907fd7b330003bed23a036e57d603a4c /basic/source | |
parent | 1ad6f436b5cd937dfc9d91c284920efddd6ad185 (diff) |
remove #if 0 block ( from af34774d260a68fc02cd78ba90dd8d4afaf1a2a4 )
I left in that block in the mentioned commit above for mostly because
I preferred a more obvious hack/change to cherry-pick to 4.0
The more I think about this ( despite the still imho problematic setting
of the modify state ) I think always writing from memory to the storage
is the right thing to do
Change-Id: I13c82b9d6b55120482c65fb7a5bfadb2396c347c
Diffstat (limited to 'basic/source')
-rw-r--r-- | basic/source/uno/namecont.cxx | 60 |
1 files changed, 15 insertions, 45 deletions
diff --git a/basic/source/uno/namecont.cxx b/basic/source/uno/namecont.cxx index 9d623c2480e8..8c0187374798 100644 --- a/basic/source/uno/namecont.cxx +++ b/basic/source/uno/namecont.cxx @@ -1927,56 +1927,26 @@ void SfxLibraryContainer::storeLibraries_Impl( const uno::Reference< embed::XSto if( pImplLib->implIsModified() || bComplete ) { -// For the moment don't copy storage (as an optimisation ) -// but instead always write to storage from memory. -// Testing pImplLib->implIsModified() is not reliable, -// IMHO the value of pImplLib->implIsModified() should -// reflect whether the library ( in-memory ) model -// is in sync with the library container's own storage. Currently -// whenever the library model is written to *any* storage -// pImplLib->implSetModified( sal_False ) is called -// The way the code works, especially the way that sfx uses -// temp storage when saving ( and later sets the root storage of the -// library container ) and similar madness in dbaccess means some surgery -// is required to make it possible to successfully use this optimisation -#if 0 - // Can we simply copy the storage? - if( !mbOldInfoFormat && !pImplLib->implIsModified() && !mbOasis2OOoFormat && xSourceLibrariesStor.is() ) + uno::Reference< embed::XStorage > xLibraryStor; + if( bStorage ) { try { - xSourceLibrariesStor->copyElementTo( rLib.aName, xTargetLibrariesStor, rLib.aName ); - } - catch( const uno::Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - // TODO: error handling? - } - } - else -#endif - { - uno::Reference< embed::XStorage > xLibraryStor; - if( bStorage ) - { - try - { - xLibraryStor = xTargetLibrariesStor->openStorageElement( + xLibraryStor = xTargetLibrariesStor->openStorageElement( rLib.aName, embed::ElementModes::READWRITE ); - } - catch(const uno::Exception& ) - { - #if OSL_DEBUG_LEVEL > 0 - Any aError( ::cppu::getCaughtException() ); - SAL_WARN( - "basic", - "couldn't create sub storage for library \"" - << rLib.aName << "\". Exception: " - << comphelper::anyToString(aError)); - #endif - return; - } + } + catch(const uno::Exception& ) + { + #if OSL_DEBUG_LEVEL > 0 + Any aError( ::cppu::getCaughtException() ); + SAL_WARN( + "basic", + "couldn't create sub storage for library \"" + << rLib.aName << "\". Exception: " + << comphelper::anyToString(aError)); + #endif + return; } // Maybe lib is not loaded?! |