From 05d5edfa74ebc74d5e74560b597be5aec6f4e9e8 Mon Sep 17 00:00:00 2001 From: Alexander Shalamov Date: Tue, 30 Oct 2018 15:59:47 +0200 Subject: [core] Remove casts where expected type is part of the contract --- src/mbgl/layout/pattern_layout.hpp | 4 ++-- src/mbgl/layout/symbol_layout.cpp | 10 +++++----- src/mbgl/renderer/buckets/circle_bucket.cpp | 2 +- src/mbgl/renderer/buckets/heatmap_bucket.cpp | 2 +- src/mbgl/renderer/layers/render_circle_layer.hpp | 4 ++++ src/mbgl/renderer/layers/render_heatmap_layer.hpp | 4 ++++ src/mbgl/renderer/layers/render_symbol_layer.hpp | 4 ++++ 7 files changed, 21 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/mbgl/layout/pattern_layout.hpp b/src/mbgl/layout/pattern_layout.hpp index 0ffac36b75..a29221c547 100644 --- a/src/mbgl/layout/pattern_layout.hpp +++ b/src/mbgl/layout/pattern_layout.hpp @@ -37,14 +37,14 @@ public: hasPattern(false) { using PatternLayer = typename B::RenderLayerType; - const auto renderLayer = layers.at(0)->as(); + const auto renderLayer = static_cast(layers.at(0)); const typename PatternLayer::StyleLayerImpl& leader = renderLayer->impl(); layout = leader.layout.evaluate(PropertyEvaluationParameters(zoom)); sourceLayerID = leader.sourceLayer; groupID = renderLayer->getID(); for (const auto& layer : layers) { - const typename B::PossiblyEvaluatedPaintProperties evaluatedProps = layer->as()->paintProperties(); + const typename B::PossiblyEvaluatedPaintProperties evaluatedProps = static_cast(layer)->paintProperties(); layerPaintProperties.emplace(layer->getID(), std::move(evaluatedProps)); const auto patternProperty = evaluatedProps.template get(); const auto constantPattern = patternProperty.constantOr(Faded >{ "", ""}); diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp index 6d20afeb8d..332fb3f46a 100644 --- a/src/mbgl/layout/symbol_layout.cpp +++ b/src/mbgl/layout/symbol_layout.cpp @@ -50,11 +50,11 @@ SymbolLayout::SymbolLayout(const BucketParameters& parameters, pixelRatio(parameters.pixelRatio), tileSize(util::tileSize * overscaling), tilePixelRatio(float(util::EXTENT) / tileSize), - textSize(layers.at(0)->as()->impl().layout.get()), - iconSize(layers.at(0)->as()->impl().layout.get()) + textSize(toRenderSymbolLayer(layers.at(0))->impl().layout.get()), + iconSize(toRenderSymbolLayer(layers.at(0))->impl().layout.get()) { - const SymbolLayer::Impl& leader = layers.at(0)->as()->impl(); + const SymbolLayer::Impl& leader = toRenderSymbolLayer(layers.at(0))->impl(); layout = leader.layout.evaluate(PropertyEvaluationParameters(zoom)); @@ -91,8 +91,8 @@ SymbolLayout::SymbolLayout(const BucketParameters& parameters, for (const auto& layer : layers) { layerPaintProperties.emplace(layer->getID(), std::make_pair( - layer->as()->iconPaintProperties(), - layer->as()->textPaintProperties() + toRenderSymbolLayer(layer)->iconPaintProperties(), + toRenderSymbolLayer(layer)->textPaintProperties() )); } diff --git a/src/mbgl/renderer/buckets/circle_bucket.cpp b/src/mbgl/renderer/buckets/circle_bucket.cpp index 820cf9f525..7e08b3c96b 100644 --- a/src/mbgl/renderer/buckets/circle_bucket.cpp +++ b/src/mbgl/renderer/buckets/circle_bucket.cpp @@ -18,7 +18,7 @@ CircleBucket::CircleBucket(const BucketParameters& parameters, const std::vector std::piecewise_construct, std::forward_as_tuple(layer->getID()), std::forward_as_tuple( - layer->as()->evaluated, + toRenderCircleLayer(layer)->evaluated, parameters.tileID.overscaledZ)); } } diff --git a/src/mbgl/renderer/buckets/heatmap_bucket.cpp b/src/mbgl/renderer/buckets/heatmap_bucket.cpp index 46d5f31599..1ed6064c34 100644 --- a/src/mbgl/renderer/buckets/heatmap_bucket.cpp +++ b/src/mbgl/renderer/buckets/heatmap_bucket.cpp @@ -18,7 +18,7 @@ HeatmapBucket::HeatmapBucket(const BucketParameters& parameters, const std::vect std::piecewise_construct, std::forward_as_tuple(layer->getID()), std::forward_as_tuple( - layer->as()->evaluated, + toRenderHeatmapLayer(layer)->evaluated, parameters.tileID.overscaledZ)); } } diff --git a/src/mbgl/renderer/layers/render_circle_layer.hpp b/src/mbgl/renderer/layers/render_circle_layer.hpp index 53353fcdcb..678aeb102f 100644 --- a/src/mbgl/renderer/layers/render_circle_layer.hpp +++ b/src/mbgl/renderer/layers/render_circle_layer.hpp @@ -39,4 +39,8 @@ inline bool RenderLayer::is() const { return type == style::LayerType::Circle; } +inline const RenderCircleLayer* toRenderCircleLayer(const RenderLayer* layer) { + return static_cast(layer); +} + } // namespace mbgl diff --git a/src/mbgl/renderer/layers/render_heatmap_layer.hpp b/src/mbgl/renderer/layers/render_heatmap_layer.hpp index 9aca8bdc93..c2d2dcaa3b 100644 --- a/src/mbgl/renderer/layers/render_heatmap_layer.hpp +++ b/src/mbgl/renderer/layers/render_heatmap_layer.hpp @@ -49,4 +49,8 @@ inline bool RenderLayer::is() const { return type == style::LayerType::Heatmap; } +inline const RenderHeatmapLayer* toRenderHeatmapLayer(const RenderLayer* layer) { + return static_cast(layer); +} + } // namespace mbgl diff --git a/src/mbgl/renderer/layers/render_symbol_layer.hpp b/src/mbgl/renderer/layers/render_symbol_layer.hpp index bd43324712..7c52467e56 100644 --- a/src/mbgl/renderer/layers/render_symbol_layer.hpp +++ b/src/mbgl/renderer/layers/render_symbol_layer.hpp @@ -99,4 +99,8 @@ inline bool RenderLayer::is() const { return type == style::LayerType::Symbol; } +inline const RenderSymbolLayer* toRenderSymbolLayer(const RenderLayer* layer) { + return static_cast(layer); +} + } // namespace mbgl -- cgit v1.2.1