diff options
author | Tobrun Van Nuland <tobrun.van.nuland@gmail.com> | 2017-08-17 10:32:49 +0200 |
---|---|---|
committer | Tobrun <tobrun@mapbox.com> | 2017-08-17 16:58:49 +0200 |
commit | 83336e2224b2f814fd5dedf5d18c0174d806fb1b (patch) | |
tree | 402964ac770d2c2d68999fe5727d85b6381f9c5a /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PolygonContainer.java | |
parent | 830bf151be41609526a662c08bfdf04d358defbf (diff) | |
download | qtlocation-mapboxgl-83336e2224b2f814fd5dedf5d18c0174d806fb1b.tar.gz |
[android] - avoid IndexOutOfBounds when destroying map object
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PolygonContainer.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PolygonContainer.java | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PolygonContainer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PolygonContainer.java index e626fc3dc0..016862bddc 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PolygonContainer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PolygonContainer.java @@ -42,7 +42,7 @@ class PolygonContainer implements Polygons { Polygon polygon; List<Polygon> polygons = new ArrayList<>(count); - if (count > 0) { + if (nativeMapView != null && count > 0) { for (PolygonOptions polygonOptions : polygonOptionsList) { polygon = polygonOptions.getPolygon(); if (!polygon.getPoints().isEmpty()) { @@ -50,23 +50,12 @@ class PolygonContainer implements Polygons { } } - long[] ids = null; - if (nativeMapView != null) { - ids = nativeMapView.addPolygons(polygons); - } - - long id = 0; - for (int i = 0; i < polygons.size(); i++) { + long[] ids = nativeMapView.addPolygons(polygons); + for (int i = 0; i < ids.length; i++) { polygon = polygons.get(i); polygon.setMapboxMap(mapboxMap); - if (ids != null) { - id = ids[i]; - } else { - // unit test - id++; - } - polygon.setId(id); - annotations.put(id, polygon); + polygon.setId(ids[i]); + annotations.put(ids[i], polygon); } } return polygons; |