[Libreoffice-commits] core.git: basic/source
Noel Power
noel.power at suse.com
Thu May 9 01:55:29 PDT 2013
basic/source/uno/namecont.cxx | 60 ++++++++++--------------------------------
1 file changed, 15 insertions(+), 45 deletions(-)
New commits:
commit cbd1a89676f39135ed2e9c47d20475b2053289b9
Author: Noel Power <noel.power at suse.com>
Date: Thu May 9 09:51:28 2013 +0100
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
diff --git a/basic/source/uno/namecont.cxx b/basic/source/uno/namecont.cxx
index 9d623c2..8c01873 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?!
More information about the Libreoffice-commits
mailing list