parent
dbb14963cf
commit
54fdddb514
@ -0,0 +1,139 @@
|
|||||||
|
From 34c72f10939d473eb1a098fac1f05647c0232727 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stephan Bergmann <sbergman@redhat.com>
|
||||||
|
Date: Thu, 27 Feb 2014 13:18:36 +0100
|
||||||
|
Subject: [PATCH] fdo#75540 setProcessServiceFactory must be called before
|
||||||
|
InitVCL
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
...because InitVCL now calls:
|
||||||
|
|
||||||
|
> comphelper::getProcessServiceFactory
|
||||||
|
> comphelper::getProcessComponentContext
|
||||||
|
> utl::DefaultFontConfiguration::DefaultFontConfiguration
|
||||||
|
> rtl::Static<utl::DefaultFontConfiguration, (anonymous namespace)::theDefaultFontConfiguration>::get
|
||||||
|
> utl::DefaultFontConfiguration::get
|
||||||
|
> ImplStyleData::SetStandardStyles
|
||||||
|
> ImplStyleData::ImplStyleData
|
||||||
|
> boost::make_shared<ImplStyleData>
|
||||||
|
> StyleSettings::StyleSettings
|
||||||
|
> ImplAllSettingsData::ImplAllSettingsData
|
||||||
|
> boost::make_shared<ImplAllSettingsData>
|
||||||
|
> AllSettings::AllSettings
|
||||||
|
> Application::InitSettings
|
||||||
|
> Application::GetSettings
|
||||||
|
> GtkInstance::AfterAppInit
|
||||||
|
> InitVCL
|
||||||
|
> ImplSVMain
|
||||||
|
> SVMain
|
||||||
|
> sal_main
|
||||||
|
> main
|
||||||
|
|
||||||
|
and Application::Main is only called after InitVCL.
|
||||||
|
|
||||||
|
(cherry picked from commit c828e3cc409077a1916911b8abf1d7b8dbb2078a)
|
||||||
|
Conflicts:
|
||||||
|
padmin/source/pamain.cxx
|
||||||
|
|
||||||
|
Change-Id: I1126e33f454a4ea35ef295cbd3f48429c473efb4
|
||||||
|
Reviewed-on: https://gerrit.libreoffice.org/8380
|
||||||
|
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
||||||
|
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
||||||
|
---
|
||||||
|
padmin/source/pamain.cxx | 54 +++++++++++++++++++++++++++---------------------
|
||||||
|
1 file changed, 30 insertions(+), 24 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/padmin/source/pamain.cxx b/padmin/source/pamain.cxx
|
||||||
|
index bbccadf..b510f99 100644
|
||||||
|
--- a/padmin/source/pamain.cxx
|
||||||
|
+++ b/padmin/source/pamain.cxx
|
||||||
|
@@ -51,6 +51,11 @@ public:
|
||||||
|
virtual sal_uInt16 Exception( sal_uInt16 nError );
|
||||||
|
|
||||||
|
static OUString ReadStringHook( const OUString& );
|
||||||
|
+
|
||||||
|
+private:
|
||||||
|
+ virtual void Init() SAL_OVERRIDE;
|
||||||
|
+
|
||||||
|
+ Reference< XComponentContext > xCtx_;
|
||||||
|
};
|
||||||
|
|
||||||
|
void vclmain::createApplication()
|
||||||
|
@@ -84,35 +89,13 @@ int MyApp::Main()
|
||||||
|
|
||||||
|
EnableAutoHelpId();
|
||||||
|
|
||||||
|
- //-------------------------------------------------
|
||||||
|
- // create the global service-manager
|
||||||
|
- //-------------------------------------------------
|
||||||
|
- Reference< XComponentContext > xCtx;
|
||||||
|
- Reference< XMultiServiceFactory > xFactory;
|
||||||
|
- try
|
||||||
|
- {
|
||||||
|
- xCtx = defaultBootstrap_InitialComponentContext();
|
||||||
|
- xFactory = Reference< XMultiServiceFactory >( xCtx->getServiceManager(), UNO_QUERY );
|
||||||
|
- if( xFactory.is() )
|
||||||
|
- setProcessServiceFactory( xFactory );
|
||||||
|
- }
|
||||||
|
- catch( const com::sun::star::uno::Exception& )
|
||||||
|
- {
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if( ! xFactory.is() )
|
||||||
|
- {
|
||||||
|
- fprintf( stderr, "Could not bootstrap UNO, installation must be in disorder. Exiting.\n" );
|
||||||
|
- exit( 1 );
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
// Detect desktop environment - need to do this as early as possible
|
||||||
|
com::sun::star::uno::setCurrentContext(
|
||||||
|
new DesktopContext( com::sun::star::uno::getCurrentContext() ) );
|
||||||
|
|
||||||
|
// Create UCB (for backwards compatibility, in case some code still uses
|
||||||
|
// plain createInstance w/o args directly to obtain an instance):
|
||||||
|
- com::sun::star::ucb::UniversalContentBroker::create(xCtx);
|
||||||
|
+ com::sun::star::ucb::UniversalContentBroker::create(xCtx_);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize the Java UNO AccessBridge if accessibility is turned on
|
||||||
|
@@ -139,7 +122,7 @@ int MyApp::Main()
|
||||||
|
*/
|
||||||
|
try
|
||||||
|
{
|
||||||
|
- Reference<XComponent> xComp(xCtx, UNO_QUERY_THROW);
|
||||||
|
+ Reference<XComponent> xComp(xCtx_, UNO_QUERY_THROW);
|
||||||
|
xComp->dispose();
|
||||||
|
}
|
||||||
|
catch(...)
|
||||||
|
@@ -149,4 +132,27 @@ int MyApp::Main()
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
+void MyApp::Init()
|
||||||
|
+{
|
||||||
|
+ // create the global service-manager
|
||||||
|
+
|
||||||
|
+ Reference< XMultiServiceFactory > xFactory;
|
||||||
|
+ try
|
||||||
|
+ {
|
||||||
|
+ xCtx_ = defaultBootstrap_InitialComponentContext();
|
||||||
|
+ xFactory = Reference< XMultiServiceFactory >( xCtx_->getServiceManager(), UNO_QUERY );
|
||||||
|
+ if( xFactory.is() )
|
||||||
|
+ setProcessServiceFactory( xFactory );
|
||||||
|
+ }
|
||||||
|
+ catch( const com::sun::star::uno::Exception& )
|
||||||
|
+ {
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if( ! xFactory.is() )
|
||||||
|
+ {
|
||||||
|
+ fprintf( stderr, "Could not bootstrap UNO, installation must be in disorder. Exiting.\n" );
|
||||||
|
+ exit( 1 );
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||||
|
--
|
||||||
|
1.8.5.3
|
||||||
|
|
Loading…
Reference in new issue