[Libreoffice-commits] online.git: 2 commits - loolwsd/LOOLSession.cpp loolwsd/LOOLWSD.cpp

Mihai Varga mihai.varga at collabora.com
Tue Jul 14 09:50:06 PDT 2015


 loolwsd/LOOLSession.cpp |    6 +++---
 loolwsd/LOOLWSD.cpp     |    8 ++++++--
 2 files changed, 9 insertions(+), 5 deletions(-)

New commits:
commit 0d80d63cb415e0bbc9de6e405f90923eae4df937
Author: Mihai Varga <mihai.varga at collabora.com>
Date:   Tue Jul 14 19:46:29 2015 +0300

    loolwsd: don't cancel special tile requests that have an ID

diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp
index 631e2b3..61fe7a6 100644
--- a/loolwsd/LOOLWSD.cpp
+++ b/loolwsd/LOOLWSD.cpp
@@ -235,7 +235,9 @@ public:
                             // "tile" messages from the queue.
                             if (tokens.count() == 1 && tokens[0] == "canceltiles")
                             {
-                                queue.remove_if([](std::string& x){ return x.find("tile ") == 0;});
+                                queue.remove_if([](std::string& x) {
+                                    return (x.find("tile ") == 0 && x.find("id=") == std::string::npos);
+                                });
 
                                 // Also forward the "canceltiles" to the child process, if any
                                 session->handleInput(buffer, n);
@@ -870,7 +872,9 @@ void LOOLWSD::componentMain()
                 // "tile" messages from the queue.
                 if (tokens.count() == 1 && tokens[0] == "canceltiles")
                 {
-                    queue.remove_if([](std::string& x){ return x.find("tile ") == 0;});
+                    queue.remove_if([](std::string& x) {
+                        return (x.find("tile ") == 0 && x.find("id=") == std::string::npos);
+                    });
                 }
                 else
                 {
commit 97191d985b6b9a38227fef4d162b26c61800dbc5
Author: Mihai Varga <mihai.varga at collabora.com>
Date:   Tue Jul 14 19:46:04 2015 +0300

    loolwsd: allow an extra paramater to the tile command (ID)

diff --git a/loolwsd/LOOLSession.cpp b/loolwsd/LOOLSession.cpp
index 0fdf4d8..0e73bf6 100644
--- a/loolwsd/LOOLSession.cpp
+++ b/loolwsd/LOOLSession.cpp
@@ -171,7 +171,7 @@ bool MasterProcessSession::handleInput(const char *buffer, int length)
             if (tokens[0] == "tile:")
             {
                 int part, width, height, tilePosX, tilePosY, tileWidth, tileHeight;
-                if (tokens.count() != 8 ||
+                if (tokens.count() < 8 ||
                     !getTokenInteger(tokens[1], "part", part) ||
                     !getTokenInteger(tokens[2], "width", width) ||
                     !getTokenInteger(tokens[3], "height", height) ||
@@ -409,7 +409,7 @@ void MasterProcessSession::sendTile(const char *buffer, int length, StringTokeni
 {
     int part, width, height, tilePosX, tilePosY, tileWidth, tileHeight;
 
-    if (tokens.count() != 8 ||
+    if (tokens.count() < 8 ||
         !getTokenInteger(tokens[1], "part", part) ||
         !getTokenInteger(tokens[2], "width", width) ||
         !getTokenInteger(tokens[3], "height", height) ||
@@ -780,7 +780,7 @@ void ChildProcessSession::sendTile(const char *buffer, int length, StringTokeniz
 {
     int part, width, height, tilePosX, tilePosY, tileWidth, tileHeight;
 
-    if (tokens.count() != 8 ||
+    if (tokens.count() < 8 ||
         !getTokenInteger(tokens[1], "part", part) ||
         !getTokenInteger(tokens[2], "width", width) ||
         !getTokenInteger(tokens[3], "height", height) ||


More information about the Libreoffice-commits mailing list