summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorNoel Power <noel.power@suse.com>2013-05-09 09:51:28 +0100
committerNoel Power <noel.power@suse.com>2013-05-09 09:54:41 +0100
commitcbd1a89676f39135ed2e9c47d20475b2053289b9 (patch)
treeb981860d907fd7b330003bed23a036e57d603a4c /basic
parent1ad6f436b5cd937dfc9d91c284920efddd6ad185 (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')
-rw-r--r--basic/source/uno/namecont.cxx60
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?!