Kaydet (Commit) cbd1a896 authored tarafından Noel Power's avatar Noel Power

remove #if 0 block ( from af34774d )

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
üst 1ad6f436
......@@ -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?!
......
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