From 7dde622db130a15865262ce45b87a4ec28313981 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Tue, 8 Mar 2016 23:44:06 +0200 Subject: [PATCH] [core] Extra checks in Transform --- src/mbgl/map/transform.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mbgl/map/transform.cpp b/src/mbgl/map/transform.cpp index 61635d472..45386b9dc 100644 --- a/src/mbgl/map/transform.cpp +++ b/src/mbgl/map/transform.cpp @@ -423,7 +423,7 @@ ScreenCoordinate Transform::getScreenCoordinate(const EdgeInsets& padding) const #pragma mark - Zoom void Transform::scaleBy(double ds, const ScreenCoordinate& center, const Duration& duration) { - if (std::isnan(ds)) { + if (std::isnan(ds) || !center) { return; } @@ -463,10 +463,12 @@ void Transform::setScale(double scale, const EdgeInsets& padding, const Duration } void Transform::setMinZoom(const double minZoom) { + if (std::isnan(minZoom)) return; state.setMinZoom(minZoom); } void Transform::setMaxZoom(const double maxZoom) { + if (std::isnan(maxZoom)) return; state.setMaxZoom(maxZoom); } @@ -657,12 +659,14 @@ void Transform::setGestureInProgress(bool inProgress) { #pragma mark Conversion and projection ScreenCoordinate Transform::latLngToScreenCoordinate(const LatLng& latLng) const { + if (!latLng) return {}; ScreenCoordinate point = state.latLngToScreenCoordinate(latLng); point.y = state.height - point.y; return point; } LatLng Transform::screenCoordinateToLatLng(const ScreenCoordinate& point) const { + if (!point) return {}; ScreenCoordinate flippedPoint = point; flippedPoint.y = state.height - flippedPoint.y; return state.screenCoordinateToLatLng(flippedPoint);