[Libreoffice-commits] core.git: Branch 'libreoffice-4-2' - padmin/source

Stephan Bergmann sbergman at redhat.com
Thu Feb 27 05:36:01 PST 2014


 padmin/source/pamain.cxx |   54 ++++++++++++++++++++++++++---------------------
 1 file changed, 30 insertions(+), 24 deletions(-)

New commits:
commit 34c72f10939d473eb1a098fac1f05647c0232727
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Feb 27 13:18:36 2014 +0100

    fdo#75540 setProcessServiceFactory must be called before InitVCL
    
    ...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 at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

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: */


More information about the Libreoffice-commits mailing list