diff --git a/src/mbgl/tile/geometry_tile.cpp b/src/mbgl/tile/geometry_tile.cpp index 82d0c9180..7fb0c9922 100644 --- a/src/mbgl/tile/geometry_tile.cpp +++ b/src/mbgl/tile/geometry_tile.cpp @@ -130,8 +130,8 @@ void GeometryTile::onLayout(LayoutResult result, const uint64_t resultCorrelatio // replacing a tile at a different zoom that _did_ have symbols. (void)resultCorrelationID; nonSymbolBuckets = std::move(result.nonSymbolBuckets); - pendingFeatureIndex = std::move(result.featureIndex); - pendingData = std::move(result.tileData); + pendingFeatureIndex = { std::move(result.featureIndex) }; + pendingData = { std::move(result.tileData) }; observer->onTileChanged(*this); } @@ -215,10 +215,12 @@ Bucket* GeometryTile::getBucket(const Layer::Impl& layer) const { void GeometryTile::commitFeatureIndex() { if (pendingFeatureIndex) { - featureIndex = std::move(pendingFeatureIndex); + featureIndex = std::move(*pendingFeatureIndex); + pendingFeatureIndex = nullopt; } if (pendingData) { - data = std::move(pendingData); + data = std::move(*pendingData); + pendingData = nullopt; } } diff --git a/src/mbgl/tile/geometry_tile.hpp b/src/mbgl/tile/geometry_tile.hpp index 00a4aafad..0c6adf033 100644 --- a/src/mbgl/tile/geometry_tile.hpp +++ b/src/mbgl/tile/geometry_tile.hpp @@ -125,9 +125,9 @@ private: std::unordered_map> nonSymbolBuckets; std::unique_ptr featureIndex; - std::unique_ptr pendingFeatureIndex; + optional> pendingFeatureIndex; std::unique_ptr data; - std::unique_ptr pendingData; + optional> pendingData; optional glyphAtlasImage; optional iconAtlasImage;