diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-03-08 23:44:06 +0200 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-03-10 03:36:47 +0200 |
commit | 7dde622db130a15865262ce45b87a4ec28313981 (patch) | |
tree | 97b8843fbe35550697045ff3e4085397ee347019 /src | |
parent | b33b2f1515060d0c447fdf09f52935db1c076430 (diff) | |
download | qtlocation-mapboxgl-7dde622db130a15865262ce45b87a4ec28313981.tar.gz |
[core] Extra checks in Transform
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/map/transform.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mbgl/map/transform.cpp b/src/mbgl/map/transform.cpp index 61635d472a..45386b9dc8 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); |