summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/map/vector_tile_data.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/mbgl/map/vector_tile_data.cpp b/src/mbgl/map/vector_tile_data.cpp
index df7923273c..27172a3e63 100644
--- a/src/mbgl/map/vector_tile_data.cpp
+++ b/src/mbgl/map/vector_tile_data.cpp
@@ -144,16 +144,15 @@ void VectorTileData::redoPlacement(const PlacementConfig newConfig, const std::f
if (newConfig != placedConfig) {
targetConfig = newConfig;
- if (!workRequest) {
- // Don't start a new placement request when the current one hasn't completed yet, or when
- // we are parsing buckets.
- redoPlacement(callback);
- }
+ redoPlacement(callback);
}
}
void VectorTileData::redoPlacement(const std::function<void()>& callback) {
- workRequest.reset();
+ // Don't start a new placement request when the current one hasn't completed yet, or when
+ // we are parsing buckets.
+ if (workRequest) return;
+
workRequest = worker.redoPlacement(tileWorker, buckets, targetConfig, [this, callback, config = targetConfig] {
workRequest.reset();