diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-08-19 14:09:34 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-08-19 14:09:34 +0300 |
commit | cf3965793b72520b21a77f0f7db85d4e32766f69 (patch) | |
tree | 429f4ecb62d10275d84a5af2d490115c45ded683 | |
parent | 377e282849f685e63638939636dc41ee0b158993 (diff) |
[core] Reproduce layer impl cast problemupstream/mikhail_reproduce_layer_impl_cast_problem
9 files changed, 10 insertions, 0 deletions
diff --git a/src/mbgl/renderer/layers/render_background_layer.cpp b/src/mbgl/renderer/layers/render_background_layer.cpp index 4725bce43..5cce47160 100644 --- a/src/mbgl/renderer/layers/render_background_layer.cpp +++ b/src/mbgl/renderer/layers/render_background_layer.cpp @@ -16,7 +16,9 @@ namespace mbgl { using namespace style; + inline const BackgroundLayer::Impl& impl(const Immutable<style::Layer::Impl>& impl) { + if(impl->getTypeInfo() != BackgroundLayer::Impl::staticTypeInfo()) abort(); return static_cast<const style::BackgroundLayer::Impl&>(*impl); } diff --git a/src/mbgl/renderer/layers/render_circle_layer.cpp b/src/mbgl/renderer/layers/render_circle_layer.cpp index 4f1620364..64812ba05 100644 --- a/src/mbgl/renderer/layers/render_circle_layer.cpp +++ b/src/mbgl/renderer/layers/render_circle_layer.cpp @@ -16,6 +16,7 @@ namespace mbgl { using namespace style; inline const style::CircleLayer::Impl& impl(const Immutable<style::Layer::Impl>& impl) { + if (impl->getTypeInfo() != CircleLayer::Impl::staticTypeInfo()) abort(); return static_cast<const style::CircleLayer::Impl&>(*impl); } diff --git a/src/mbgl/renderer/layers/render_custom_layer.cpp b/src/mbgl/renderer/layers/render_custom_layer.cpp index 75c21997b..eeef7d742 100644 --- a/src/mbgl/renderer/layers/render_custom_layer.cpp +++ b/src/mbgl/renderer/layers/render_custom_layer.cpp @@ -15,6 +15,7 @@ namespace mbgl { using namespace style; inline const CustomLayer::Impl& impl(const Immutable<style::Layer::Impl>& impl) { + if (impl->getTypeInfo() != CustomLayer::Impl::staticTypeInfo()) abort(); return static_cast<const CustomLayer::Impl&>(*impl); } diff --git a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp index 3c97ab743..a5146964f 100644 --- a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp @@ -21,6 +21,7 @@ namespace mbgl { using namespace style; inline const FillExtrusionLayer::Impl& impl(const Immutable<style::Layer::Impl>& impl) { + if (impl->getTypeInfo() != FillExtrusionLayer::Impl::staticTypeInfo()) abort(); return static_cast<const FillExtrusionLayer::Impl&>(*impl); } diff --git a/src/mbgl/renderer/layers/render_fill_layer.cpp b/src/mbgl/renderer/layers/render_fill_layer.cpp index 6a134a398..aecc5d6bf 100644 --- a/src/mbgl/renderer/layers/render_fill_layer.cpp +++ b/src/mbgl/renderer/layers/render_fill_layer.cpp @@ -22,6 +22,7 @@ namespace mbgl { using namespace style; inline const FillLayer::Impl& impl(const Immutable<style::Layer::Impl>& impl) { + if (impl->getTypeInfo() != FillLayer::Impl::staticTypeInfo()) abort(); return static_cast<const FillLayer::Impl&>(*impl); } diff --git a/src/mbgl/renderer/layers/render_heatmap_layer.cpp b/src/mbgl/renderer/layers/render_heatmap_layer.cpp index 478a8f8c4..b5be02a5a 100644 --- a/src/mbgl/renderer/layers/render_heatmap_layer.cpp +++ b/src/mbgl/renderer/layers/render_heatmap_layer.cpp @@ -20,6 +20,7 @@ namespace mbgl { using namespace style; inline const HeatmapLayer::Impl& impl(const Immutable<Layer::Impl>& impl) { + if (impl->getTypeInfo() != HeatmapLayer::Impl::staticTypeInfo()) abort(); return static_cast<const HeatmapLayer::Impl&>(*impl); } diff --git a/src/mbgl/renderer/layers/render_hillshade_layer.cpp b/src/mbgl/renderer/layers/render_hillshade_layer.cpp index 2c7e0aef8..970c6fd92 100644 --- a/src/mbgl/renderer/layers/render_hillshade_layer.cpp +++ b/src/mbgl/renderer/layers/render_hillshade_layer.cpp @@ -19,6 +19,7 @@ namespace mbgl { using namespace style; inline const HillshadeLayer::Impl& impl(const Immutable<style::Layer::Impl>& impl) { + if (impl->getTypeInfo() != HillshadeLayer::Impl::staticTypeInfo()) abort(); return static_cast<const HillshadeLayer::Impl&>(*impl); } diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp index fcd52b21d..92be7f3e1 100644 --- a/src/mbgl/renderer/layers/render_line_layer.cpp +++ b/src/mbgl/renderer/layers/render_line_layer.cpp @@ -21,6 +21,7 @@ namespace mbgl { using namespace style; inline const LineLayer::Impl& impl(const Immutable<style::Layer::Impl>& impl) { + if (impl->getTypeInfo() != LineLayer::Impl::staticTypeInfo()) abort(); return static_cast<const LineLayer::Impl&>(*impl); } diff --git a/src/mbgl/renderer/layers/render_raster_layer.cpp b/src/mbgl/renderer/layers/render_raster_layer.cpp index 82d135b9e..5924dfe93 100644 --- a/src/mbgl/renderer/layers/render_raster_layer.cpp +++ b/src/mbgl/renderer/layers/render_raster_layer.cpp @@ -15,6 +15,7 @@ namespace mbgl { using namespace style; inline const RasterLayer::Impl& impl(const Immutable<style::Layer::Impl>& impl) { + if (impl->getTypeInfo() != RasterLayer::Impl::staticTypeInfo()) abort(); return static_cast<const RasterLayer::Impl&>(*impl); } |