Kaydet (Commit) 0e21019e authored tarafından Michael Stahl's avatar Michael Stahl

fdo#68983: Revert "remove #if 0 block (from ...

... af34774d)"

This reverts commit cbd1a896.

Conflicts:
	basic/source/uno/namecont.cxx

Change-Id: I665f2e875c6b339ad718ca53fd0e54328efaeaff
üst 563c2367
...@@ -1894,29 +1894,57 @@ void SfxLibraryContainer::storeLibraries_Impl( const uno::Reference< embed::XSto ...@@ -1894,29 +1894,57 @@ void SfxLibraryContainer::storeLibraries_Impl( const uno::Reference< embed::XSto
if( pImplLib->implIsModified() || bComplete ) if( pImplLib->implIsModified() || bComplete )
{ {
{ // For the moment don't copy storage (as an optimisation )
uno::Reference< embed::XStorage > xLibraryStor; // but instead always write to storage from memory.
if( bStorage ) // 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() )
{ {
try try
{ {
xLibraryStor = xTargetLibrariesStor->openStorageElement( xSourceLibrariesStor->copyElementTo( rLib.aName, xTargetLibrariesStor, rLib.aName );
rLib.aName,
embed::ElementModes::READWRITE );
} }
catch(const uno::Exception& ) catch( const uno::Exception& )
{ {
#if OSL_DEBUG_LEVEL > 0 DBG_UNHANDLED_EXCEPTION();
Any aError( ::cppu::getCaughtException() ); // TODO: error handling?
SAL_WARN(
"basic",
"couldn't create sub storage for library \""
<< rLib.aName << "\". Exception: "
<< comphelper::anyToString(aError));
#endif
throw;
} }
} }
else
#endif
{
uno::Reference< embed::XStorage > xLibraryStor;
if( bStorage )
{
try
{
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
throw;
}
}
// Maybe lib is not loaded?! // Maybe lib is not loaded?!
if( bComplete ) if( bComplete )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment