summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-05-20 13:42:45 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-05-20 14:33:41 +0300
commit8d91264160b49465cb403de6c6e3f419163b76f7 (patch)
treea34148c9d34a31b11fce988d5db66d574d4fdf70
parent30d4a55716e8d23127b8a1e40c7e1afb85f53c82 (diff)
downloadqtlocation-mapboxgl-8d91264160b49465cb403de6c6e3f419163b76f7.tar.gz
[core] CrossTileSymbolIndex::pruneUnusedLayers() does not create intermadiate containers
-rw-r--r--src/mbgl/text/cross_tile_symbol_index.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/mbgl/text/cross_tile_symbol_index.cpp b/src/mbgl/text/cross_tile_symbol_index.cpp
index 34b67c2a52..2ddb209878 100644
--- a/src/mbgl/text/cross_tile_symbol_index.cpp
+++ b/src/mbgl/text/cross_tile_symbol_index.cpp
@@ -187,15 +187,13 @@ bool CrossTileSymbolIndex::addLayer(const RenderLayer& layer, float lng) {
}
void CrossTileSymbolIndex::pruneUnusedLayers(const std::set<std::string>& usedLayers) {
- std::vector<std::string> unusedLayers;
- for (auto layerIndex : layerIndexes) {
- if (usedLayers.find(layerIndex.first) == usedLayers.end()) {
- unusedLayers.push_back(layerIndex.first);
+ for (auto it = layerIndexes.begin(); it != layerIndexes.end();) {
+ if (usedLayers.find(it->first) == usedLayers.end()) {
+ it = layerIndexes.erase(it);
+ } else {
+ ++it;
}
}
- for (auto unusedLayer : unusedLayers) {
- layerIndexes.erase(unusedLayer);
- }
}
void CrossTileSymbolIndex::reset() {