Stopgap fixes for the crash on exit, fdo#36301
Hacks just intended as debugging aids, suggested by caolan. But as this does prevent the crash, I removed the debugging printfs and assertions, and commit as we don't have any proper fix anyway.
This commit is contained in:
parent
07e038661f
commit
48a54070b4
3 changed files with 20 additions and 1 deletions
|
@ -510,12 +510,16 @@ css::beans::Optional< css::uno::Any > Components::getExternalValue(
|
|||
return value;
|
||||
}
|
||||
|
||||
int tempHACK = 0;
|
||||
|
||||
Components::Components(
|
||||
css::uno::Reference< css::uno::XComponentContext > const & context):
|
||||
context_(context)
|
||||
{
|
||||
lock_ = lock();
|
||||
|
||||
tempHACK = 1;
|
||||
|
||||
OSL_ASSERT(context.is());
|
||||
RTL_LOGFILE_TRACE_AUTHOR("configmgr", "sb", "begin parsing");
|
||||
parseXcsXcuLayer(
|
||||
|
@ -594,6 +598,7 @@ Components::Components(
|
|||
Components::~Components()
|
||||
{
|
||||
flushModifications();
|
||||
tempHACK = 0;
|
||||
}
|
||||
|
||||
void Components::parseFileLeniently(
|
||||
|
|
|
@ -284,6 +284,8 @@ void RootAccess::removeChangesListener(
|
|||
}
|
||||
}
|
||||
|
||||
extern int tempHACK;
|
||||
|
||||
void RootAccess::commitChanges()
|
||||
throw (css::lang::WrappedTargetException, css::uno::RuntimeException)
|
||||
{
|
||||
|
@ -291,6 +293,13 @@ void RootAccess::commitChanges()
|
|||
Broadcaster bc;
|
||||
{
|
||||
osl::MutexGuard g(*lock_);
|
||||
|
||||
// OSL_ENSURE(tempHACK, "fucktastic!, seriously busted lifecycles\n");
|
||||
if (!tempHACK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
checkLocalizedPropertyAccess();
|
||||
int finalizedLayer;
|
||||
Modifications globalMods;
|
||||
|
|
|
@ -153,6 +153,7 @@ using namespace ::com::sun::star;
|
|||
// Static member
|
||||
SfxApplication* SfxApplication::pApp = NULL;
|
||||
static BasicDLL* pBasic = NULL;
|
||||
static SfxHelp* pSfxHelp = NULL;
|
||||
|
||||
class SfxPropertyHandler : public PropertyHandler
|
||||
{
|
||||
|
@ -305,7 +306,6 @@ SfxApplication* SfxApplication::GetOrCreate()
|
|||
::framework::SetIsDockingWindowVisible( IsDockingWindowVisible );
|
||||
::framework::SetActivateToolPanel( &SfxViewFrame::ActivateToolPanel );
|
||||
|
||||
SfxHelp* pSfxHelp = new SfxHelp;
|
||||
Application::SetHelp( pSfxHelp );
|
||||
if ( SvtHelpOptions().IsHelpTips() )
|
||||
Help::EnableQuickHelp();
|
||||
|
@ -352,6 +352,8 @@ SfxApplication::SfxApplication()
|
|||
#endif
|
||||
#endif
|
||||
|
||||
pSfxHelp = new SfxHelp;
|
||||
|
||||
pBasic = new BasicDLL;
|
||||
StarBASIC::SetGlobalErrorHdl( LINK( this, SfxApplication, GlobalBasicErrorHdl_Impl ) );
|
||||
RTL_LOGFILE_CONTEXT_TRACE( aLog, "} initialize DDE" );
|
||||
|
@ -365,6 +367,9 @@ SfxApplication::~SfxApplication()
|
|||
|
||||
SfxModule::DestroyModules_Impl();
|
||||
|
||||
delete pSfxHelp;
|
||||
Application::SetHelp( NULL );
|
||||
|
||||
// delete global options
|
||||
SvtViewOptions::ReleaseOptions();
|
||||
delete pBasic;
|
||||
|
|
Loading…
Reference in a new issue