diff options
Diffstat (limited to 'desktop/source/app/app.cxx')
-rw-r--r-- | desktop/source/app/app.cxx | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx index cf48ede8cd8a..6f00d47332ac 100644 --- a/desktop/source/app/app.cxx +++ b/desktop/source/app/app.cxx @@ -1166,16 +1166,6 @@ USHORT Desktop::Exception(USHORT nError) switch( nError & EXC_MAJORTYPE ) { -/* - case EXC_USER: - if( nError == EXC_OUTOFMEMORY ) - { - // not possible without a special NewHandler! - String aMemExceptionString; - Application::Abort( aMemExceptionString ); - } - break; -*/ case EXC_RSCNOTLOADED: { String aResExceptionString; @@ -1192,23 +1182,14 @@ USHORT Desktop::Exception(USHORT nError) default: { - if ( pArgs->IsNoRestore() ) { - if (m_pLockfile != NULL) { - m_pLockfile->clean(); - } - _exit( ExitHelper::E_LOCKFILE ); + if (m_pLockfile != NULL) { + m_pLockfile->clean(); } - if( bRestart ) { OfficeIPCThread::DisableOfficeIPCThread(); if( pSignalHandler ) DELETEZ( pSignalHandler ); - - if (m_pLockfile != NULL) { - m_pLockfile->clean(); - } - #ifdef MACOSX DoRestart(); #endif @@ -1216,17 +1197,15 @@ USHORT Desktop::Exception(USHORT nError) } else { - bInException = sal_False; - _exit( ExitHelper::E_CRASH ); + Application::Abort( String() ); } break; } } + OSL_ASSERT(false); // unreachable return 0; - - // ConfigManager is disposed, so no way to continue } void Desktop::AppEvent( const ApplicationEvent& rAppEvent ) @@ -1596,7 +1575,8 @@ void Desktop::Main() // SetSplashScreenProgress(80); - if ( !bTerminateRequested && !pCmdLineArgs->IsInvisible() ) + if ( !bTerminateRequested && !pCmdLineArgs->IsInvisible() && + !pCmdLineArgs->IsNoQuickstart() ) InitializeQuickstartMode( xSMgr ); RTL_LOGFILE_CONTEXT( aLog2, "desktop (cd100003) createInstance com.sun.star.frame.Desktop" ); @@ -1683,7 +1663,11 @@ void Desktop::Main() // remove temp directory RemoveTemporaryDirectory(); + // The acceptors in the AcceptorMap must be released (in DeregisterServices) + // with the solar mutex unlocked, to avoid deadlock: + nAcquireCount = Application::ReleaseSolarMutex(); DeregisterServices(); + Application::AcquireSolarMutex(nAcquireCount); tools::DeInitTestToolLib(); |