loolwsd/LOOLKit.cpp |   29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

New commits:
commit 7ecde2342246274d4f5564fd13511856e7533921
Author: Pranav Kant <pran...@collabora.co.uk>
Date:   Sun Feb 7 14:38:03 2016 +0530

    loolwsd: Remove superfluous registration of callback
    
    Our DocumentCallback is smart enough which checks all the
    running connections, and send the callback notification to all of
    them. Registering the callback only during the first loadDocument
    call should be enough.
    
    Change-Id: I82bcb9525814dae14def3bfb6c088337d0d0ea3c
    Reviewed-on: https://gerrit.libreoffice.org/22202
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>
    Tested-by: Ashod Nakashian <ashnak...@gmail.com>

diff --git a/loolwsd/LOOLKit.cpp b/loolwsd/LOOLKit.cpp
index 9c55ff3..00847da 100644
--- a/loolwsd/LOOLKit.cpp
+++ b/loolwsd/LOOLKit.cpp
@@ -516,10 +516,12 @@ private:
 
         if (_loKitDocument == nullptr)
         {
+            // This is the first time we are loading the document
             Log::info("Loading new document from URI: [" + uri + "] for 
session [" + sessionId + "].");
 
             if ( LIBREOFFICEKIT_HAS(_loKit, registerCallback))
             {
+                // TODO: Separate the global callback from document callback
                 _loKit->pClass->registerCallback(_loKit, DocumentCallback, 
this);
                 _loKit->pClass->setOptionalFeatures(_loKit, 
LOK_FEATURE_DOCUMENT_PASSWORD |
                                                     
LOK_FEATURE_DOCUMENT_PASSWORD_TO_MODIFY);
@@ -527,6 +529,7 @@ private:
 
             // documentLoad will trigger callback, which needs to take the 
lock.
             lock.unlock();
+
             if ((_loKitDocument = _loKit->pClass->documentLoad(_loKit, 
uri.c_str())) == nullptr)
             {
                 Log::error("Failed to load: " + uri + ", error: " + 
_loKit->pClass->getError(_loKit));
@@ -535,22 +538,22 @@ private:
 
             // Retake the lock.
             lock.lock();
-        }
 
-        if (_multiView)
-        {
-            Log::info("Loading view to document from URI: [" + uri + "] for 
session [" + sessionId + "].");
-            const auto viewId = 
_loKitDocument->pClass->createView(_loKitDocument);
+            if (_multiView)
+            {
+                Log::info("Loading view to document from URI: [" + uri + "] 
for session [" + sessionId + "].");
+                const auto viewId = 
_loKitDocument->pClass->createView(_loKitDocument);
 
-            _loKitDocument->pClass->registerCallback(_loKitDocument, 
ViewCallback, reinterpret_cast<void*>(intSessionId));
+                _loKitDocument->pClass->registerCallback(_loKitDocument, 
ViewCallback, reinterpret_cast<void*>(intSessionId));
 
-            Log::info() << "Document [" << _url << "] view ["
-                        << viewId << "] loaded, leaving "
-                        << (_clientViews + 1) << " views." << Log::end;
-        }
-        else
-        {
-            _loKitDocument->pClass->registerCallback(_loKitDocument, 
DocumentCallback, this);
+                Log::info() << "Document [" << _url << "] view ["
+                            << viewId << "] loaded, leaving "
+                            << (_clientViews + 1) << " views." << Log::end;
+            }
+            else
+            {
+                _loKitDocument->pClass->registerCallback(_loKitDocument, 
DocumentCallback, this);
+            }
         }
 
         ++_clientViews;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to