loolwsd/DocumentBroker.cpp | 7 +++---- loolwsd/LOOLKit.cpp | 20 +++++++++++++++++--- loolwsd/MasterProcessSession.cpp | 3 ++- 3 files changed, 22 insertions(+), 8 deletions(-)
New commits: commit 346a063d0a0001c2a54e4c8f2f8310784c0028ba Author: Ashod Nakashian <[email protected]> Date: Thu May 5 10:18:31 2016 -0400 loolwsd: fix regression to handling tile command Change-Id: Idedf25f3756ea1e04daf17540b1a57e1e7af8448 Reviewed-on: https://gerrit.libreoffice.org/24679 Reviewed-by: Ashod Nakashian <[email protected]> Tested-by: Ashod Nakashian <[email protected]> diff --git a/loolwsd/DocumentBroker.cpp b/loolwsd/DocumentBroker.cpp index 048e6a1..9785b94 100644 --- a/loolwsd/DocumentBroker.cpp +++ b/loolwsd/DocumentBroker.cpp @@ -413,8 +413,7 @@ void DocumentBroker::handleTileRequest(int part, int width, int height, int tile // Piggyback editlock information to kit process. // We do not allow requests without editlock to change document parts oss << " editlock=" << (session->isEditLocked() ? "1" : "0"); - - std::string tileMsg = oss.str(); + const std::string tileMsg = oss.str(); std::unique_lock<std::mutex> lock(_mutex); @@ -423,9 +422,9 @@ void DocumentBroker::handleTileRequest(int part, int width, int height, int tile if (cachedTile) { #if ENABLE_DEBUG - std::string response = "tile:" + tileMsg + " renderid=cached\n"; + const std::string response = "tile:" + tileMsg + " renderid=cached\n"; #else - std::string response = "tile:" + tileMsg + "\n"; + const std::string response = "tile:" + tileMsg + "\n"; #endif std::vector<char> output; diff --git a/loolwsd/LOOLKit.cpp b/loolwsd/LOOLKit.cpp index 318ae60..4a65094 100644 --- a/loolwsd/LOOLKit.cpp +++ b/loolwsd/LOOLKit.cpp @@ -576,7 +576,7 @@ public: void renderTile(StringTokenizer& tokens, const std::shared_ptr<Poco::Net::WebSocket>& ws) { - int part, width, height, tilePosX, tilePosY, tileWidth, tileHeight, editLock; + int part, width, height, tilePosX, tilePosY, tileWidth, tileHeight; if (tokens.count() < 9 || !getTokenInteger(tokens[1], "part", part) || @@ -585,8 +585,7 @@ public: !getTokenInteger(tokens[4], "tileposx", tilePosX) || !getTokenInteger(tokens[5], "tileposy", tilePosY) || !getTokenInteger(tokens[6], "tilewidth", tileWidth) || - !getTokenInteger(tokens[7], "tileheight", tileHeight) || - !getTokenInteger(tokens[8], "editlock", editLock)) + !getTokenInteger(tokens[7], "tileheight", tileHeight)) { //FIXME: Return error. //sendTextFrame("error: cmd=tile kind=syntax"); @@ -606,6 +605,21 @@ public: return; } + int editLock = 0; + size_t index = 8; + if (tokens.count() > index && tokens[index].find("editlock") == 0) + { + getTokenInteger(tokens[index], "editlock", editLock); + ++index; + } + + int id = -1; + if (tokens.count() > index && tokens[index].find("id") == 0) + { + getTokenInteger(tokens[index], "id", id); + ++index; + } + std::unique_lock<std::recursive_mutex> lock(ChildProcessSession::getLock()); if (_loKitDocument == nullptr) diff --git a/loolwsd/MasterProcessSession.cpp b/loolwsd/MasterProcessSession.cpp index 733b43b..6d24b1a 100644 --- a/loolwsd/MasterProcessSession.cpp +++ b/loolwsd/MasterProcessSession.cpp @@ -530,7 +530,7 @@ void MasterProcessSession::sendTile(const char * /*buffer*/, int /*length*/, Str void MasterProcessSession::sendCombinedTiles(const char* /*buffer*/, int /*length*/, StringTokenizer& tokens) { - int part, pixelWidth, pixelHeight, tileWidth, tileHeight, id = -1; + int part, pixelWidth, pixelHeight, tileWidth, tileHeight; std::string tilePositionsX, tilePositionsY; if (tokens.count() < 8 || !getTokenInteger(tokens[1], "part", part) || @@ -561,6 +561,7 @@ void MasterProcessSession::sendCombinedTiles(const char* /*buffer*/, int /*lengt ++index; } + int id = -1; if (tokens.count() > index && tokens[index].find("id") == 0) { getTokenInteger(tokens[index], "id", id); _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
