[Libreoffice-commits] online.git: ios/Mobile

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Mar 28 15:32:12 UTC 2019


 ios/Mobile/AppDelegate.h                       |    1 -
 ios/Mobile/AppDelegate.mm                      |    6 ------
 ios/Mobile/TemplateCollectionViewController.mm |    5 +++++
 3 files changed, 5 insertions(+), 7 deletions(-)

New commits:
commit e2f48faf1441d88e545ff87b42a90a14bfcc04ac
Author:     Tor Lillqvist <tml at collabora.com>
AuthorDate: Thu Mar 28 17:04:58 2019 +0200
Commit:     Tor Lillqvist <tml at collabora.com>
CommitDate: Thu Mar 28 17:28:26 2019 +0200

    tdf#123742: Fix lifecycle issues for the "Office" object
    
    Because of the use of std::shared_ptr in lokit_main(), the (singleton)
    lok::Office (or LibLibreOffice_Impl) object gets destroyed when
    lokit_main() exits. We shouldn't keep our own copy of a raw pointer to
    it around. Just call lok_init_2() to get the pointer where we need it.
    We don't need to call lok_init_2() already in -[AppDelegate
    application:didFinishLaunchingWithOptions:].

diff --git a/ios/Mobile/AppDelegate.h b/ios/Mobile/AppDelegate.h
index d9c6c00cc..58c09bf46 100644
--- a/ios/Mobile/AppDelegate.h
+++ b/ios/Mobile/AppDelegate.h
@@ -17,7 +17,6 @@
 @end
 
 extern NSString *app_locale;
-extern LibreOfficeKit *lo_kit;
 
 // vim:set shiftwidth=4 softtabstop=4 expandtab:
 
diff --git a/ios/Mobile/AppDelegate.mm b/ios/Mobile/AppDelegate.mm
index 001f0f5c7..b67caf194 100644
--- a/ios/Mobile/AppDelegate.mm
+++ b/ios/Mobile/AppDelegate.mm
@@ -27,7 +27,6 @@
 static LOOLWSD *loolwsd = nullptr;
 
 NSString *app_locale;
-LibreOfficeKit *lo_kit;
 
 static void download(NSURL *source, NSURL *destination) {
     [[[NSURLSession sharedSession] downloadTaskWithURL:source
@@ -184,11 +183,6 @@ static void updateTemplates(NSData *data, NSURLResponse *response)
         }
     }
 
-    // Initialize LibreOfficeKit.
-
-    lo_kit = lok_init_2(nullptr, nullptr);
-    lo_kit->pClass->registerCallback(lo_kit, [](int, const char *, void*){}, nullptr);
-
     fakeSocketSetLoggingCallback([](const std::string& line)
                                  {
                                      LOG_TRC_NOFILE(line);
diff --git a/ios/Mobile/TemplateCollectionViewController.mm b/ios/Mobile/TemplateCollectionViewController.mm
index c5da8ef05..a31f3a655 100644
--- a/ios/Mobile/TemplateCollectionViewController.mm
+++ b/ios/Mobile/TemplateCollectionViewController.mm
@@ -8,6 +8,8 @@
 
 #import "svtools/strings.hrc"
 
+#import <LibreOfficeKit/LibreOfficeKitInit.h>
+
 #import "AppDelegate.h"
 #import "L10n.h"
 #import "TemplateCollectionViewController.h"
@@ -136,8 +138,11 @@ static NSString *mapTemplateExtensionToActual(NSString *templateName) {
     NSURL *newURL = [cacheDirectory URLByAppendingPathComponent:mapTemplateExtensionToActual(selectedTemplate.lastPathComponent)
                                                     isDirectory:NO];
 
+    LibreOfficeKit *lo_kit = lok_init_2(nullptr, nullptr);
+
     // Load the template into LibreOffice core, save as the corresponding document type (with the
     // same basename), and then proceed to edit that.
+
     LibreOfficeKitDocument *doc = lo_kit->pClass->documentLoad(lo_kit, [[selectedTemplate absoluteString] UTF8String]);
     doc->pClass->saveAs(doc, [[newURL absoluteString] UTF8String], nullptr, nullptr);
     doc->pClass->destroy(doc);


More information about the Libreoffice-commits mailing list