diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-05-20 13:42:45 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-05-20 14:33:41 +0300 |
commit | 8d91264160b49465cb403de6c6e3f419163b76f7 (patch) | |
tree | a34148c9d34a31b11fce988d5db66d574d4fdf70 | |
parent | 30d4a55716e8d23127b8a1e40c7e1afb85f53c82 (diff) | |
download | qtlocation-mapboxgl-8d91264160b49465cb403de6c6e3f419163b76f7.tar.gz |
[core] CrossTileSymbolIndex::pruneUnusedLayers() does not create intermadiate containers
-rw-r--r-- | src/mbgl/text/cross_tile_symbol_index.cpp | 12 |
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() { |