summaryrefslogtreecommitdiff
path: root/platform/android/src/map_renderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/map_renderer.cpp')
-rw-r--r--platform/android/src/map_renderer.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/platform/android/src/map_renderer.cpp b/platform/android/src/map_renderer.cpp
index 13790c4544..e9eb82864d 100644
--- a/platform/android/src/map_renderer.cpp
+++ b/platform/android/src/map_renderer.cpp
@@ -58,7 +58,10 @@ void MapRenderer::schedule(std::weak_ptr<Mailbox> scheduled) {
static auto& javaClass = jni::Class<MapRenderer>::Singleton(*_env);
static auto queueEvent = javaClass.GetMethod<void(
jni::Object<MapRendererRunnable>)>(*_env, "queueEvent");
- javaPeer.get(*_env).Call(*_env, queueEvent, peer);
+ auto weakReference = javaPeer.get(*_env);
+ if (weakReference) {
+ weakReference.Call(*_env, queueEvent, peer);
+ }
// Release the c++ peer as it will be destroyed on GC of the Java Peer
runnable.release();
@@ -68,7 +71,10 @@ void MapRenderer::requestRender() {
android::UniqueEnv _env = android::AttachEnv();
static auto& javaClass = jni::Class<MapRenderer>::Singleton(*_env);
static auto onInvalidate = javaClass.GetMethod<void()>(*_env, "requestRender");
- javaPeer.get(*_env).Call(*_env, onInvalidate);
+ auto weakReference = javaPeer.get(*_env);
+ if (weakReference) {
+ weakReference.Call(*_env, onInvalidate);
+ }
}
void MapRenderer::update(std::shared_ptr<UpdateParameters> params) {