[Libreoffice-commits] online.git: loolwsd/TileCache.cpp
Ashod Nakashian
ashod.nakashian at collabora.co.uk
Wed Sep 21 05:17:15 UTC 2016
loolwsd/TileCache.cpp | 19 ++++---------------
1 file changed, 4 insertions(+), 15 deletions(-)
New commits:
commit 87a9f6e166e1cf487eb7497b4abcb65b30821b7a
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date: Tue Sep 20 21:40:28 2016 -0400
loolwsd: don't remove subscriptions on invalidation
Tile invalidation is a hint to the clients to request
fresh tiles and replace the existing ones. However
any outstanding tile request will be rendered anew.
So no need to remove those.
Nonetheless, we should issue new versions to avoid
race between old tile and invalidate. This can
happen when a tile rendered just before invalidate
reaches the client after the invalidate. The client
will think the tile is a new one when it was rendered
just before the invalidate.
Change-Id: Ieb2ffab1214dd904da8e532e7d9d20e6ad783b78
Reviewed-on: https://gerrit.libreoffice.org/29123
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/loolwsd/TileCache.cpp b/loolwsd/TileCache.cpp
index a439a63..eb8e8d8 100644
--- a/loolwsd/TileCache.cpp
+++ b/loolwsd/TileCache.cpp
@@ -202,6 +202,10 @@ void TileCache::saveTileAndNotify(const TileDesc& tile, const char *data, const
_tilesBeingRendered.erase(cachedName);
}
}
+ else
+ {
+ Log::debug("No subscribers for: " + cachedName);
+ }
}
std::string TileCache::getTextFile(const std::string& fileName)
@@ -312,21 +316,6 @@ void TileCache::invalidateTiles(int part, int x, int y, int width, int height)
}
}
}
-
- // Forget this tile as it will have to be rendered again.
- for (auto it = _tilesBeingRendered.begin(); it != _tilesBeingRendered.end(); )
- {
- const std::string cachedName = it->first;
- if (intersectsTile(cachedName, part, x, y, width, height))
- {
- Log::debug("Removing subscriptions for: " + cachedName);
- it = _tilesBeingRendered.erase(it);
- }
- else
- {
- ++it;
- }
- }
}
void TileCache::invalidateTiles(const std::string& tiles)
More information about the Libreoffice-commits
mailing list