summaryrefslogtreecommitdiff
path: root/src/mbgl/tile
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/tile')
-rw-r--r--src/mbgl/tile/geometry_tile.cpp7
-rw-r--r--src/mbgl/tile/tile.hpp3
2 files changed, 5 insertions, 5 deletions
diff --git a/src/mbgl/tile/geometry_tile.cpp b/src/mbgl/tile/geometry_tile.cpp
index c85f9ef713..977744248d 100644
--- a/src/mbgl/tile/geometry_tile.cpp
+++ b/src/mbgl/tile/geometry_tile.cpp
@@ -200,9 +200,10 @@ Bucket* GeometryTile::getBucket(const Layer::Impl& layer) const {
if (it == buckets.end()) {
return nullptr;
}
-
- assert(it->second);
- return it->second.get();
+ Bucket* result = it->second.get();
+ assert(result);
+ // Bucket might be outdated, see issue #12432.
+ return result->supportsLayer(layer) ? result : nullptr;
}
float GeometryTile::getQueryPadding(const std::vector<const RenderLayer*>& layers) {
diff --git a/src/mbgl/tile/tile.hpp b/src/mbgl/tile/tile.hpp
index 70b2aa0371..3bd655a6c8 100644
--- a/src/mbgl/tile/tile.hpp
+++ b/src/mbgl/tile/tile.hpp
@@ -56,8 +56,7 @@ public:
template <class T>
T* getBucket(const style::Layer::Impl& layer) const {
- Bucket* bucket = getBucket(layer);
- return bucket ? bucket->as<T>() : nullptr;
+ return static_cast<T*>(getBucket(layer));
}
virtual void setShowCollisionBoxes(const bool) {}