diff options
-rw-r--r-- | src/mbgl/tile/geometry_tile.cpp | 10 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile.hpp | 4 |
2 files changed, 8 insertions, 6 deletions
diff --git a/src/mbgl/tile/geometry_tile.cpp b/src/mbgl/tile/geometry_tile.cpp index 82d0c91806..7fb0c9922d 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 00a4aafadf..0c6adf0337 100644 --- a/src/mbgl/tile/geometry_tile.hpp +++ b/src/mbgl/tile/geometry_tile.hpp @@ -125,9 +125,9 @@ private: std::unordered_map<std::string, std::shared_ptr<Bucket>> nonSymbolBuckets; std::unique_ptr<FeatureIndex> featureIndex; - std::unique_ptr<FeatureIndex> pendingFeatureIndex; + optional<std::unique_ptr<FeatureIndex>> pendingFeatureIndex; std::unique_ptr<const GeometryTileData> data; - std::unique_ptr<const GeometryTileData> pendingData; + optional<std::unique_ptr<const GeometryTileData>> pendingData; optional<AlphaImage> glyphAtlasImage; optional<PremultipliedImage> iconAtlasImage; |