diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/tile/raster_tile.cpp | 14 | ||||
-rw-r--r-- | src/mbgl/tile/raster_tile.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/vector_tile.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/tile/vector_tile.hpp | 6 |
4 files changed, 16 insertions, 12 deletions
diff --git a/src/mbgl/tile/raster_tile.cpp b/src/mbgl/tile/raster_tile.cpp index 5906b0f6a0..be78a9988b 100644 --- a/src/mbgl/tile/raster_tile.cpp +++ b/src/mbgl/tile/raster_tile.cpp @@ -36,17 +36,19 @@ void RasterTile::setError(std::exception_ptr err, const bool complete) { } // Called when new data is available for this tile. It can be called even if there is already data -// in this tile. -void RasterTile::setData(std::shared_ptr<const std::string> data, - const optional<Timestamp> modified_, - const optional<Timestamp> expires_, +// in this tile. When the existing data should remain the same, the optional data field is empty. +void RasterTile::setData(optional<std::shared_ptr<const std::string>> data, + optional<Timestamp> modified_, + optional<Timestamp> expires_, const bool complete) { (void)complete; modified = modified_; expires = expires_; - ++correlationID; - worker.invoke(&RasterTileWorker::parse, data, correlationID); + if (data) { + ++correlationID; + worker.invoke(&RasterTileWorker::parse, *data, correlationID); + } } // Invoked once the worker thread finished parsing the image. diff --git a/src/mbgl/tile/raster_tile.hpp b/src/mbgl/tile/raster_tile.hpp index b92637b711..f5f6ea944c 100644 --- a/src/mbgl/tile/raster_tile.hpp +++ b/src/mbgl/tile/raster_tile.hpp @@ -25,7 +25,7 @@ public: void setNecessity(Necessity) final; void setError(std::exception_ptr, bool complete); - void setData(std::shared_ptr<const std::string> data, + void setData(optional<std::shared_ptr<const std::string>> data, optional<Timestamp> modified_, optional<Timestamp> expires_, bool complete); diff --git a/src/mbgl/tile/vector_tile.cpp b/src/mbgl/tile/vector_tile.cpp index f03f836851..e22ccf0d54 100644 --- a/src/mbgl/tile/vector_tile.cpp +++ b/src/mbgl/tile/vector_tile.cpp @@ -21,7 +21,7 @@ void VectorTile::setError(std::exception_ptr err, const bool complete) { GeometryTile::setError(err); } -void VectorTile::setData(std::shared_ptr<const std::string> data_, +void VectorTile::setData(optional<std::shared_ptr<const std::string>> data, optional<Timestamp> modified_, optional<Timestamp> expires_, const bool complete) { @@ -29,7 +29,9 @@ void VectorTile::setData(std::shared_ptr<const std::string> data_, modified = modified_; expires = expires_; - GeometryTile::setData(data_ ? std::make_unique<VectorTileData>(data_) : nullptr); + if (data) { + GeometryTile::setData(*data ? std::make_unique<VectorTileData>(*data) : nullptr); + } } } // namespace mbgl diff --git a/src/mbgl/tile/vector_tile.hpp b/src/mbgl/tile/vector_tile.hpp index c34fa4d763..c7caa0a1f6 100644 --- a/src/mbgl/tile/vector_tile.hpp +++ b/src/mbgl/tile/vector_tile.hpp @@ -18,9 +18,9 @@ public: void setNecessity(Necessity) final; void setError(std::exception_ptr, bool complete); - void setData(std::shared_ptr<const std::string> data, - optional<Timestamp> modified, - optional<Timestamp> expires, + void setData(optional<std::shared_ptr<const std::string>> data, + optional<Timestamp> modified_, + optional<Timestamp> expires_, bool complete); private: |