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:
Tor Lillqvist 2011-04-21 11:26:34 +03:00
parent 07e038661f
commit 48a54070b4
3 changed files with 20 additions and 1 deletions

View file

@ -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(

View file

@ -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;

View file

@ -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;