Kaydet (Commit) 955c2cbf authored tarafından Caolán McNamara's avatar Caolán McNamara Kaydeden (comit) Andras Timar

Resolves: tdf#46440 SIGSEGV on toolkit bootstrap without running instance

Change-Id: I9a78a75b3d72586b1702ed6fa63bb0b62ce6cd72
(cherry picked from commit 3f695473)
üst 4e1d190f
......@@ -44,6 +44,7 @@
#include <com/sun/star/awt/XToolkitExperimental.hpp>
#include <com/sun/star/awt/XMessageBoxFactory.hpp>
#include <cppuhelper/bootstrap.hxx>
#include <cppuhelper/compbase2.hxx>
#include <cppuhelper/interfacecontainer.hxx>
#include <cppuhelper/supportsservice.hxx>
......@@ -595,6 +596,25 @@ static void SAL_CALL ToolkitWorkerFunction( void* pArgs )
{
osl_setThreadName("VCLXToolkit VCL main thread");
css::uno::Reference<css::lang::XMultiServiceFactory> xServiceManager;
try
{
xServiceManager = ::comphelper::getProcessServiceFactory();
}
catch (const css::uno::DeploymentException&)
{
}
if (!xServiceManager.is())
{
css::uno::Reference<css::uno::XComponentContext> xContext =
::cppu::defaultBootstrap_InitialComponentContext();
xServiceManager = css::uno::Reference<css::lang::XMultiServiceFactory>(
xContext->getServiceManager(), css::uno::UNO_QUERY_THROW );
// set global process service factory used by unotools config helpers
::comphelper::setProcessServiceFactory( xServiceManager );
}
VCLXToolkit * pTk = static_cast<VCLXToolkit *>(pArgs);
bInitedByVCLToolkit = InitVCL();
if( bInitedByVCLToolkit )
......
......@@ -418,7 +418,8 @@ void Application::AcquireSolarMutex( sal_uLong nCount )
bool Application::IsInMain()
{
return ImplGetSVData()->maAppData.mbInAppMain;
ImplSVData* pSVData = ImplGetSVData();
return pSVData ? pSVData->maAppData.mbInAppMain : false;
}
bool Application::IsInExecute()
......
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