[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