diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2016-05-25 20:10:57 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-05-25 21:51:25 +0200 |
commit | c91e4ee1f4c9e7150090a8c40a49966a2e169c26 (patch) | |
tree | 50c3e34f67a433e4807081492feae86bf718e070 /src | |
parent | c52a0c65f473a82d9aed05f402bc4e82fcd24fb9 (diff) | |
download | qtlocation-mapboxgl-c91e4ee1f4c9e7150090a8c40a49966a2e169c26.tar.gz |
[core] normalize TileData::State::obsolete handling
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/tile/raster_tile_data.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/tile/vector_tile_data.cpp | 11 |
2 files changed, 5 insertions, 12 deletions
diff --git a/src/mbgl/tile/raster_tile_data.cpp b/src/mbgl/tile/raster_tile_data.cpp index b47c3fed24..aab166807f 100644 --- a/src/mbgl/tile/raster_tile_data.cpp +++ b/src/mbgl/tile/raster_tile_data.cpp @@ -47,7 +47,7 @@ RasterTileData::RasterTileData(const OverscaledTileID& id_, bucket = std::move(result.get<std::unique_ptr<Bucket>>()); } else { error = result.get<std::exception_ptr>(); - state = State::obsolete; + state = State::parsed; bucket.reset(); } @@ -66,9 +66,7 @@ Bucket* RasterTileData::getBucket(StyleLayer const&) { } void RasterTileData::cancel() { - if (state != State::obsolete) { - state = State::obsolete; - } + state = State::obsolete; req = nullptr; workRequest.reset(); } diff --git a/src/mbgl/tile/vector_tile_data.cpp b/src/mbgl/tile/vector_tile_data.cpp index 29aac5af30..afca67e78e 100644 --- a/src/mbgl/tile/vector_tile_data.cpp +++ b/src/mbgl/tile/vector_tile_data.cpp @@ -62,9 +62,6 @@ VectorTileData::VectorTileData(const OverscaledTileID& id_, workRequest.reset(); workRequest = worker.parseGeometryTile(tileWorker, style.getLayers(), std::move(tile), targetConfig, [callback, this, config = targetConfig] (TileParseResult result) { workRequest.reset(); - if (state == State::obsolete) { - return; - } std::exception_ptr error; if (result.is<TileParseResultData>()) { @@ -85,8 +82,9 @@ VectorTileData::VectorTileData(const OverscaledTileID& id_, } } else { + // This is triggered when parsing fails (e.g. due to an invalid vector tile) error = result.get<std::exception_ptr>(); - state = State::obsolete; + state = State::parsed; } callback(error); @@ -107,9 +105,6 @@ bool VectorTileData::parsePending(std::function<void(std::exception_ptr)> callba workRequest.reset(); workRequest = worker.parsePendingGeometryTileLayers(tileWorker, targetConfig, [this, callback, config = targetConfig] (TileParseResult result) { workRequest.reset(); - if (state == State::obsolete) { - return; - } std::exception_ptr error; if (result.is<TileParseResultData>()) { @@ -133,7 +128,7 @@ bool VectorTileData::parsePending(std::function<void(std::exception_ptr)> callba } else { error = result.get<std::exception_ptr>(); - state = State::obsolete; + state = State::parsed; } callback(error); |