[Libreoffice-commits] core.git: Branch 'private/hcvcastro/preinit' - desktop/source

Henry Castro hcastro at collabora.com
Mon Sep 7 14:22:33 PDT 2015


 desktop/source/lib/init.cxx |   36 +++++++++++++++---------------------
 1 file changed, 15 insertions(+), 21 deletions(-)

New commits:
commit a038fdfbb27c0918906b4ffb733e8395adeac340
Author: Henry Castro <hcastro at collabora.com>
Date:   Mon Sep 7 17:21:38 2015 -0400

    desktop: add InitVCL to lo_initialize
    
    Change-Id: Ib5d4b5788441b92a30f58a129441ffeba076c181

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 9e1f1b4..9c2fcfc 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -894,7 +894,7 @@ static void aBasicErrorFunc(const OUString& rError, const OUString& rAction)
     fprintf(stderr, "Unexpected basic error dialog '%s'\n", aBuffer.getStr());
 }
 
-static bool initialize_uno(const OUString& aAppProgramURL, bool bPreInit)
+static bool initialize_uno(const OUString& aAppProgramURL)
 {
 #ifdef IOS
     // For iOS we already hardocde the inifile as "rc" in the .app directory.
@@ -903,14 +903,8 @@ static bool initialize_uno(const OUString& aAppProgramURL, bool bPreInit)
     rtl::Bootstrap::setIniFilename(aAppProgramURL + "/" SAL_CONFIGFILE("soffice"));
 #endif
 
-    if (bPreInit)
-    {
-        // pre-load all component libraries.
-        cppu::preInitBootstrap();
-        return true;
-    }
-
     xContext = cppu::defaultBootstrap_InitialComponentContext();
+
     if (!xContext.is())
     {
         gImpl->maLastExceptionMsg = "XComponentContext could not be created";
@@ -947,6 +941,8 @@ static bool initialize_uno(const OUString& aAppProgramURL, bool bPreInit)
 
 static void lo_startmain(void*)
 {
+    Application::GetSolarMutex().tryToAcquire();
+
     soffice_main();
 }
 
@@ -973,11 +969,6 @@ static void lo_status_indicator_callback(void *data, comphelper::LibreOfficeKit:
     }
 }
 
-/// pre-load and parse all filter XML
-static void forceLoadFilterXML()
-{
-}
-
 static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath, const char* pUserProfilePath)
 {
     enum {
@@ -1034,12 +1025,9 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath, const char
         {
             SAL_INFO("lok", "Attempting to initalize UNO");
 
-            if (!initialize_uno(aAppURL, (eStage == PRE_INIT)))
+            if (!initialize_uno(aAppURL))
                 return false;
 
-            if (eStage != PRE_INIT)
-                force_c_locale();
-
             // Force headless -- this is only for bitmap rendering.
             rtl::Bootstrap::set("SAL_USE_VCLPLUGIN", "svp");
 
@@ -1049,11 +1037,17 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath, const char
             desktop::Desktop::GetCommandLineArgs().setHeadless();
 
             Application::EnableHeadlessMode(true);
-        }
 
-        if (eStage == PRE_INIT)
-        {
-            forceLoadFilterXML();
+            if (eStage == PRE_INIT)
+            {
+                InitVCL();
+                // pre-load all component libraries.
+                cppu::preInitBootstrap(xContext);
+                // Release Solar Mutex, lo_startmain thread should acquire it.
+                Application::ReleaseSolarMutex();
+            }
+
+            force_c_locale();
         }
 
         // This is horrible crack. I really would want to go back to simply just call


More information about the Libreoffice-commits mailing list