diff options
Diffstat (limited to 'src/mbgl/renderer/layers/render_fill_layer.cpp')
-rw-r--r-- | src/mbgl/renderer/layers/render_fill_layer.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/mbgl/renderer/layers/render_fill_layer.cpp b/src/mbgl/renderer/layers/render_fill_layer.cpp index c59ca6f906..cce4399262 100644 --- a/src/mbgl/renderer/layers/render_fill_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_layer.cpp @@ -61,8 +61,11 @@ bool RenderFillLayer::hasTransition() const { void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { if (evaluated.get<FillPattern>().from.empty()) { for (const RenderTile& tile : renderTiles) { - assert(dynamic_cast<FillBucket*>(tile.tile.getBucket(*baseImpl))); - FillBucket& bucket = *reinterpret_cast<FillBucket*>(tile.tile.getBucket(*baseImpl)); + auto bucket_ = dynamic_cast<FillBucket*>(tile.tile.getBucket(*baseImpl)); + if (!bucket_) { + continue; + } + FillBucket& bucket = *bucket_; auto draw = [&] (auto& program, const auto& drawMode, @@ -146,8 +149,11 @@ void RenderFillLayer::render(PaintParameters& parameters, RenderSource*) { parameters.imageManager.bind(parameters.context, 0); for (const RenderTile& tile : renderTiles) { - assert(dynamic_cast<FillBucket*>(tile.tile.getBucket(*baseImpl))); - FillBucket& bucket = *reinterpret_cast<FillBucket*>(tile.tile.getBucket(*baseImpl)); + auto bucket_ = dynamic_cast<FillBucket*>(tile.tile.getBucket(*baseImpl)); + if (!bucket_) { + continue; + } + FillBucket& bucket = *bucket_; auto draw = [&] (auto& program, const auto& drawMode, |