[Libreoffice-commits] online.git: kit/Kit.cpp

Ashod Nakashian ashod.nakashian at collabora.co.uk
Mon Jan 30 08:08:59 UTC 2017


 kit/Kit.cpp |   22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

New commits:
commit 85195866749dcfbd533ce75bbc126844efd44aaf
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Mon Jan 30 02:53:38 2017 -0500

    wsd: manually generate the viewinfo json string
    
    Change-Id: Ia1c1d8752fe134a43be2859db0eb8e87fe5d83f6
    Reviewed-on: https://gerrit.libreoffice.org/33684
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/kit/Kit.cpp b/kit/Kit.cpp
index b18602e..2d0ebeb 100644
--- a/kit/Kit.cpp
+++ b/kit/Kit.cpp
@@ -1035,24 +1035,23 @@ private:
 
         // Double check if list of viewids from core and our list matches,
         // and create an array of JSON objects containing id and username
-        Array::Ptr viewInfoArray = new Array();
-        int arrayIndex = 0;
+        std::ostringstream oss;
+        oss << "viewinfo: [";
         for (const auto& viewId : viewIds)
         {
-            Object::Ptr viewInfoObj = new Object();
-            viewInfoObj->set("id", viewId);
+            oss << "{\"id\":" << viewId << ",";
             int color = 0;
             const auto itView = viewInfoMap.find(viewId);
             if (itView == viewInfoMap.end())
             {
                 LOG_ERR("No username found for viewId [" << viewId << "].");
-                viewInfoObj->set("username", "Unknown");
+                oss << "\"username\":\"Unknown\",";
             }
             else
             {
-                viewInfoObj->set("userid", itView->second.userid);
+                oss << "\"userid\":\"" << itView->second.userid << "\",";
                 const auto username = itView->second.username;
-                viewInfoObj->set("username", username);
+                oss << "\"username\":\"" << username << "\",";
                 const auto it = viewColorsMap.find(username);
                 if (it != viewColorsMap.end())
                 {
@@ -1060,13 +1059,12 @@ private:
                 }
             }
 
-            viewInfoObj->set("color", color);
-            viewInfoArray->set(arrayIndex++, viewInfoObj);
+            oss << "\"color\":" << color << "},";
         }
 
-        std::ostringstream ossViewInfo;
-        viewInfoArray->stringify(ossViewInfo);
-        const auto msg = "viewinfo: " + ossViewInfo.str();
+        oss.seekp(-1, std::ios_base::cur); // Remove last comma.
+        oss << "]";
+        const auto msg = oss.str();
 
         std::unique_lock<std::mutex> lock(_mutex);
 


More information about the Libreoffice-commits mailing list