diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2017-06-20 15:19:12 -0700 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2017-06-21 17:18:08 -0700 |
commit | 244484ca6c64b6024a59786a194ea8ba19fae809 (patch) | |
tree | e7f8ed853543bf885b95145fea2c42d6591589d5 /src/mbgl/tile/geometry_tile_worker.cpp | |
parent | 7b90af5d3580bd57cd4280173c1d2b0ee542b89d (diff) | |
download | qtlocation-mapboxgl-244484ca6c64b6024a59786a194ea8ba19fae809.tar.gz |
[core] retain GeometryTileLayer in SymbolLayout
We're storing GeometryTileFeature objects in SymbolLayout, but they may reference data in GeometryTileLayer, which could go away if we don't retain it.
Diffstat (limited to 'src/mbgl/tile/geometry_tile_worker.cpp')
-rw-r--r-- | src/mbgl/tile/geometry_tile_worker.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mbgl/tile/geometry_tile_worker.cpp b/src/mbgl/tile/geometry_tile_worker.cpp index a5a82a7920..12bb84d7e3 100644 --- a/src/mbgl/tile/geometry_tile_worker.cpp +++ b/src/mbgl/tile/geometry_tile_worker.cpp @@ -309,8 +309,9 @@ void GeometryTileWorker::redoLayout() { featureIndex->setBucketLayerIDs(leader.getID(), layerIDs); if (leader.is<RenderSymbolLayer>()) { - symbolLayoutMap.emplace(leader.getID(), - leader.as<RenderSymbolLayer>()->createLayout(parameters, group, *geometryLayer, glyphDependencies, imageDependencies)); + auto layout = leader.as<RenderSymbolLayer>()->createLayout( + parameters, group, std::move(geometryLayer), glyphDependencies, imageDependencies); + symbolLayoutMap.emplace(leader.getID(), std::move(layout)); } else { const Filter& filter = leader.baseImpl->filter; const std::string& sourceLayerID = leader.baseImpl->sourceLayer; |