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/MarkerContainer.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/MarkerContainer.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MarkerContainer.java | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MarkerContainer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MarkerContainer.java index b6bee199a3..072382ce07 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MarkerContainer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MarkerContainer.java @@ -53,7 +53,7 @@ class MarkerContainer implements Markers { mapboxMap) { int count = markerOptionsList.size(); List<Marker> markers = new ArrayList<>(count); - if (count > 0) { + if (nativeMapView != null && count > 0) { BaseMarkerOptions markerOptions; Marker marker; for (int i = 0; i < count; i++) { @@ -63,26 +63,13 @@ class MarkerContainer implements Markers { } if (markers.size() > 0) { - long[] ids = null; - if (nativeMapView != null) { - ids = nativeMapView.addMarkers(markers); + long[] ids = nativeMapView.addMarkers(markers); + for (int i = 0; i < ids.length; i++) { + Marker createdMarker = markers.get(i); + createdMarker.setMapboxMap(mapboxMap); + createdMarker.setId(ids[i]); + annotations.put(ids[i], createdMarker); } - - long id = 0; - Marker m; - for (int i = 0; i < markers.size(); i++) { - m = markers.get(i); - m.setMapboxMap(mapboxMap); - if (ids != null) { - id = ids[i]; - } else { - // unit test - id++; - } - m.setId(id); - annotations.put(id, m); - } - } } return markers; |