wsd/ClientSession.hpp  |    7 +++----
 wsd/DocumentBroker.cpp |   26 +++++++++++++-------------
 2 files changed, 16 insertions(+), 17 deletions(-)

New commits:
commit 648c662d231d63053ac18b077301395c43ddb68b
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Fri Aug 3 14:25:21 2018 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Mon Aug 20 17:49:12 2018 +0200

    get rid of boost::optional
    
    We don't check if boost is available in the configure phase so we
    can't use it. It is possible to add it but as we only use it in
    one place and it is actually not really needed, it is better to
    remove the usage.
    
    This change also moves the std::list to std::deque.
    
    Change-Id: I4c661a2fb8995bf756a0815a6e30bb304f22d3c8
    Reviewed-on: https://gerrit.libreoffice.org/58640
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>
    Tested-by: Ashod Nakashian <ashnak...@gmail.com>
    (cherry picked from commit cfab70c48bd954bd7707f00f262788194185e018)

diff --git a/wsd/ClientSession.hpp b/wsd/ClientSession.hpp
index 824f7adc4..4c86e87a1 100644
--- a/wsd/ClientSession.hpp
+++ b/wsd/ClientSession.hpp
@@ -17,8 +17,7 @@
 #include "DocumentBroker.hpp"
 #include <Poco/URI.h>
 #include <Rectangle.hpp>
-#include <boost/optional.hpp>
-#include <list>
+#include <deque>
 #include <map>
 #include <unordered_set>
 
@@ -111,7 +110,7 @@ public:
     void setWopiFileInfo(std::unique_ptr<WopiStorage::WOPIFileInfo>& 
wopiFileInfo) { _wopiFileInfo = std::move(wopiFileInfo); }
 
     /// Get requested tiles waiting for sending to the client
-    boost::optional<std::list<TileDesc>>& getRequestedTiles() { return 
_requestedTiles; }
+    std::deque<TileDesc>& getRequestedTiles() { return _requestedTiles; }
 
     /// Mark a new tile as sent
     void addTileOnFly(const TileDesc& tile);
@@ -229,7 +228,7 @@ private:
     std::unordered_set<std::string> _tilesBeingRendered;
 
     /// Requested tiles are stored in this list, before we can send them to 
the client
-    boost::optional<std::list<TileDesc>> _requestedTiles;
+    std::deque<TileDesc> _requestedTiles;
 
     /// Store wireID's of the sent tiles inside the actual visible area
     std::map<std::string, TileWireId> _oldWireIds;
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index 0fe8e1878..189db3ac3 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -1343,17 +1343,17 @@ void 
DocumentBroker::handleTileCombinedRequest(TileCombined& tileCombined,
     }
 
     // Accumulate tiles
-    boost::optional<std::list<TileDesc>>& requestedTiles = 
session->getRequestedTiles();
-    if(requestedTiles == boost::none)
+    std::deque<TileDesc>& requestedTiles = session->getRequestedTiles();
+    if (requestedTiles.empty())
     {
-        requestedTiles = std::list<TileDesc>(tileCombined.getTiles().begin(), 
tileCombined.getTiles().end());
+        requestedTiles = std::deque<TileDesc>(tileCombined.getTiles().begin(), 
tileCombined.getTiles().end());
     }
     // Drop duplicated tiles, but use newer version number
     else
     {
         for (const auto& newTile : tileCombined.getTiles())
         {
-            const TileDesc& firstOldTile = *(requestedTiles.get().begin());
+            const TileDesc& firstOldTile = *(requestedTiles.begin());
             if(newTile.getPart() != firstOldTile.getPart() ||
                newTile.getWidth() != firstOldTile.getWidth() ||
                newTile.getHeight() != firstOldTile.getHeight() ||
@@ -1364,7 +1364,7 @@ void 
DocumentBroker::handleTileCombinedRequest(TileCombined& tileCombined,
             }
 
             bool tileFound = false;
-            for (auto& oldTile : requestedTiles.get())
+            for (auto& oldTile : requestedTiles)
             {
                 if(oldTile.getTilePosX() == newTile.getTilePosX() &&
                    oldTile.getTilePosY() == newTile.getTilePosY() )
@@ -1377,7 +1377,7 @@ void 
DocumentBroker::handleTileCombinedRequest(TileCombined& tileCombined,
                 }
             }
             if(!tileFound)
-                requestedTiles.get().push_back(newTile);
+                requestedTiles.push_back(newTile);
         }
     }
 
@@ -1404,14 +1404,13 @@ void DocumentBroker::sendRequestedTiles(const 
std::shared_ptr<ClientSession>& se
 
     // All tiles were processed on client side what we sent last time, so we 
can send a new banch of tiles
     // which was invalidated / requested in the meantime
-    boost::optional<std::list<TileDesc>>& requestedTiles = 
session->getRequestedTiles();
-    if(requestedTiles != boost::none && !requestedTiles.get().empty())
+    std::deque<TileDesc>& requestedTiles = session->getRequestedTiles();
+    if (!requestedTiles.empty())
     {
         std::vector<TileDesc> tilesNeedsRendering;
-        while(session->getTilesOnFlyCount() + 
session->getTilesBeingRenderedCount() < tilesOnFlyUpperLimit
-              && !requestedTiles.get().empty())
+        while(session->getTilesOnFlyCount() + 
session->getTilesBeingRenderedCount() < tilesOnFlyUpperLimit)
         {
-            TileDesc& tile = *(requestedTiles.get().begin());
+            TileDesc& tile = *(requestedTiles.begin());
 
             // Satisfy as many tiles from the cache.
             std::unique_ptr<std::fstream> cachedTile = 
_tileCache->lookupTile(tile);
@@ -1449,7 +1448,7 @@ void DocumentBroker::sendRequestedTiles(const 
std::shared_ptr<ClientSession>& se
                 _debugRenderedTileCount++;
                 tileCache().subscribeToTileRendering(tile, session);
             }
-            requestedTiles.get().pop_front();
+            requestedTiles.pop_front();
         }
 
         // Send rendering request for those tiles which were not prerendered
@@ -1471,7 +1470,8 @@ void DocumentBroker::cancelTileRequests(const 
std::shared_ptr<ClientSession>& se
 
     // Clear tile requests
     session->clearTilesOnFly();
-    session->getRequestedTiles() = boost::none;
+
+    session->getRequestedTiles().clear();
 
     const auto canceltiles = tileCache().cancelTiles(session);
     if (!canceltiles.empty())
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to