[Libreoffice-commits] online.git: kit/Kit.cpp

Henry Castro hcastro at collabora.com
Fri Jan 6 19:48:39 UTC 2017


 kit/Kit.cpp |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

New commits:
commit 4641c922eac1c5f5d2ed2adefd8119011e7fdab5
Author: Henry Castro <hcastro at collabora.com>
Date:   Fri Jan 6 15:49:33 2017 -0400

    kit: use a second stage init after fork call

diff --git a/kit/Kit.cpp b/kit/Kit.cpp
index 62a183a..bfe75de 100644
--- a/kit/Kit.cpp
+++ b/kit/Kit.cpp
@@ -95,6 +95,7 @@ using namespace LOOLProtocol;
 // We only host a single document in our lifetime.
 class Document;
 static std::shared_ptr<Document> document;
+static LokHookFunction2* pInit = nullptr;
 
 namespace
 {
@@ -1594,7 +1595,7 @@ void lokit_main(const std::string& childRoot,
             auto kit = UnitKit::get().lok_init(instdir, userdir);
             if (!kit)
             {
-                kit = lok_init_2(instdir, userdir);
+                kit = (pInit ? pInit(instdir, userdir) : lok_init_2(instdir, userdir));
             }
 
             loKit = std::make_shared<lok::Office>(kit);
@@ -1792,6 +1793,12 @@ bool globalPreinit(const std::string &loTemplate)
         return false;
     }
 
+    pInit = reinterpret_cast<LokHookFunction2 *>(dlsym(handle, "libreofficekit_hook_2"));
+    if (!pInit)
+    {
+        LOG_FTL("No libreofficekit_hook_2 symbol in " << loadedLibrary << ": " << dlerror());
+    }
+
     LOG_TRC("lok_preinit(" << loTemplate << "/program\", \"file:///user\")");
     if (preInit((loTemplate + "/program").c_str(), "file:///user") != 0)
     {


More information about the Libreoffice-commits mailing list