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