[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