summaryrefslogtreecommitdiff
path: root/platform/android/src/native_map_view.cpp
diff options
context:
space:
mode:
authorTobrun <tobrun.van.nuland@gmail.com>2018-12-12 13:02:14 +0100
committerTobrun <tobrun@mapbox.com>2018-12-13 19:08:12 +0100
commitaedbdc21d00fe9ecc91e4fbbca1d02b9bb84a824 (patch)
treeeb6d69abf3f590b8c3c1170e4aa03aa1155beddd /platform/android/src/native_map_view.cpp
parente94a7fc40551d4673fd885cbcad1c41706af26b0 (diff)
downloadqtlocation-mapboxgl-aedbdc21d00fe9ecc91e4fbbca1d02b9bb84a824.tar.gz
[androd] - add weak references checks to all jni callbacks
Diffstat (limited to 'platform/android/src/native_map_view.cpp')
-rwxr-xr-xplatform/android/src/native_map_view.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp
index 872022c8e4..c76b5c2610 100755
--- a/platform/android/src/native_map_view.cpp
+++ b/platform/android/src/native_map_view.cpp
@@ -225,7 +225,10 @@ void NativeMapView::onDidBecomeIdle() {
android::UniqueEnv _env = android::AttachEnv();
static auto& javaClass = jni::Class<NativeMapView>::Singleton(*_env);
static auto onDidBecomeIdle = javaClass.GetMethod<void ()>(*_env, "onDidBecomeIdle");
- javaPeer.get(*_env).Call(*_env, onDidBecomeIdle);
+ auto weakReference = javaPeer.get(*_env);
+ if (weakReference) {
+ weakReference.Call(*_env, onDidBecomeIdle);
+ }
}
void NativeMapView::onDidFinishLoadingStyle() {
@@ -501,7 +504,10 @@ void NativeMapView::scheduleSnapshot(jni::JNIEnv&) {
// invoke Mapview#OnSnapshotReady
static auto& javaClass = jni::Class<NativeMapView>::Singleton(*_env);
static auto onSnapshotReady = javaClass.GetMethod<void (jni::Object<Bitmap>)>(*_env, "onSnapshotReady");
- javaPeer.get(*_env).Call(*_env, onSnapshotReady, bitmap);
+ auto weakReference = javaPeer.get(*_env);
+ if (weakReference) {
+ weakReference.Call(*_env, onSnapshotReady, bitmap);
+ }
});
}