[Libreoffice-commits] online.git: common/MessageQueue.hpp kit/Kit.cpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Mon Jan 2 06:06:06 UTC 2017
common/MessageQueue.hpp | 8 ++++----
kit/Kit.cpp | 12 +++++++-----
2 files changed, 11 insertions(+), 9 deletions(-)
New commits:
commit 7f08cf53876ac55f4ed4668135937c576a7c0348
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Sun Jan 1 13:05:52 2017 -0500
wsd: cleanup TileQueue accessing in Kit
Change-Id: I50ff5bea0e0b193baef2abfaa1a866a7e20f9ab8
Reviewed-on: https://gerrit.libreoffice.org/32616
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/common/MessageQueue.hpp b/common/MessageQueue.hpp
index 8bbe56a..6eb07c0 100644
--- a/common/MessageQueue.hpp
+++ b/common/MessageQueue.hpp
@@ -100,18 +100,18 @@ public:
void updateCursorPosition(int viewId, int part, int x, int y, int width, int height)
{
- auto cursorPosition = CursorPosition({ part, x, y, width, height });
+ const auto cursorPosition = CursorPosition({ part, x, y, width, height });
auto lock = getLock();
- auto it = _cursorPositions.find(viewId);
- if (it != _cursorPositions.end())
+ auto it = _cursorPositions.lower_bound(viewId);
+ if (it != _cursorPositions.end() && it->first == viewId)
{
it->second = cursorPosition;
}
else
{
- _cursorPositions[viewId] = cursorPosition;
+ _cursorPositions.insert(it, std::make_pair(viewId, cursorPosition));
}
// Move to front, so the current front view
diff --git a/kit/Kit.cpp b/kit/Kit.cpp
index 286760d..4b67507 100644
--- a/kit/Kit.cpp
+++ b/kit/Kit.cpp
@@ -792,6 +792,9 @@ public:
assert(pDescr && "Null callback data.");
assert(pDescr->Doc && "Null Document instance.");
+ auto tileQueue = pDescr->Doc->getTileQueue();
+ assert(tileQueue && "Null TileQueue.");
+
const std::string payload = pPayload ? pPayload : "(nil)";
LOG_TRC("Document::ViewCallback [" << pDescr->ViewId <<
"] [" << LOKitHelper::kitCallbackTypeToString(nType) <<
@@ -809,7 +812,7 @@ public:
auto cursorWidth = std::stoi(tokens[2]);
auto cursorHeight = std::stoi(tokens[3]);
- pDescr->Doc->getTileQueue()->updateCursorPosition(0, 0, cursorX, cursorY, cursorWidth, cursorHeight);
+ tileQueue->updateCursorPosition(0, 0, cursorX, cursorY, cursorWidth, cursorHeight);
}
}
else if (nType == LOK_CALLBACK_INVALIDATE_VIEW_CURSOR ||
@@ -830,11 +833,11 @@ public:
auto cursorWidth = std::stoi(tokens[2]);
auto cursorHeight = std::stoi(tokens[3]);
- pDescr->Doc->getTileQueue()->updateCursorPosition(std::stoi(viewId), std::stoi(part), cursorX, cursorY, cursorWidth, cursorHeight);
+ tileQueue->updateCursorPosition(std::stoi(viewId), std::stoi(part), cursorX, cursorY, cursorWidth, cursorHeight);
}
}
- pDescr->Doc->getTileQueue()->put("callback " + std::to_string(pDescr->ViewId) + " " + std::to_string(nType) + " " + payload);
+ tileQueue->put("callback " + std::to_string(pDescr->ViewId) + ' ' + std::to_string(nType) + ' ' + payload);
}
private:
@@ -843,7 +846,7 @@ private:
void broadcastCallbackToClients(const int nType, const std::string& payload)
{
// "-1" means broadcast
- _tileQueue->put("callback -1 " + std::to_string(nType) + " " + payload);
+ _tileQueue->put("callback -1 " + std::to_string(nType) + ' ' + payload);
}
/// Load a document (or view) and register callbacks.
@@ -909,7 +912,6 @@ private:
const auto viewId = session.getViewId();
_tileQueue->removeCursorPosition(viewId);
-
std::unique_lock<std::mutex> lockLokDoc(_documentMutex);
if (_loKitDocument == nullptr)
{
More information about the Libreoffice-commits
mailing list