diff options
Diffstat (limited to 'platform/android/src')
-rw-r--r-- | platform/android/src/map_renderer.cpp | 2 | ||||
-rw-r--r-- | platform/android/src/map_renderer.hpp | 2 | ||||
-rw-r--r-- | platform/android/src/map_renderer_runnable.cpp | 7 | ||||
-rw-r--r-- | platform/android/src/map_renderer_runnable.hpp | 4 |
4 files changed, 7 insertions, 8 deletions
diff --git a/platform/android/src/map_renderer.cpp b/platform/android/src/map_renderer.cpp index 6be708b994..0c0e907f14 100644 --- a/platform/android/src/map_renderer.cpp +++ b/platform/android/src/map_renderer.cpp @@ -43,7 +43,7 @@ ActorRef<Renderer> MapRenderer::actor() const { return *rendererRef; } -void MapRenderer::schedule(std::weak_ptr<Mailbox> scheduled) { +void MapRenderer::schedule(std::function<void()> scheduled) { // Create a runnable android::UniqueEnv _env = android::AttachEnv(); auto runnable = std::make_unique<MapRendererRunnable>(*_env, std::move(scheduled)); diff --git a/platform/android/src/map_renderer.hpp b/platform/android/src/map_renderer.hpp index 5a8ddeeb91..664da20a94 100644 --- a/platform/android/src/map_renderer.hpp +++ b/platform/android/src/map_renderer.hpp @@ -67,7 +67,7 @@ public: // From Scheduler. Schedules by using callbacks to the // JVM to process the mailbox on the right thread. - void schedule(std::weak_ptr<Mailbox> scheduled) override; + void schedule(std::function<void()> scheduled) override; void requestRender(); diff --git a/platform/android/src/map_renderer_runnable.cpp b/platform/android/src/map_renderer_runnable.cpp index 77c3aa301d..227f49ee3f 100644 --- a/platform/android/src/map_renderer_runnable.cpp +++ b/platform/android/src/map_renderer_runnable.cpp @@ -5,9 +5,8 @@ namespace mbgl { namespace android { -MapRendererRunnable::MapRendererRunnable(jni::JNIEnv& env, std::weak_ptr<Mailbox> mailbox_) - : mailbox(std::move(mailbox_)) { - +MapRendererRunnable::MapRendererRunnable(jni::JNIEnv& env, std::function<void()> function_) + : function(std::move(function_)) { // Create the Java peer and hold on to a global reference // Not using a weak reference here as this might oerflow // the weak reference table on some devices @@ -21,7 +20,7 @@ MapRendererRunnable::MapRendererRunnable(jni::JNIEnv& env, std::weak_ptr<Mailbox MapRendererRunnable::~MapRendererRunnable() = default; void MapRendererRunnable::run(jni::JNIEnv&) { - Mailbox::maybeReceive(mailbox); + if (function) function(); } jni::Global<jni::Object<MapRendererRunnable>> MapRendererRunnable::peer() { diff --git a/platform/android/src/map_renderer_runnable.hpp b/platform/android/src/map_renderer_runnable.hpp index 21c4369b69..24d0f2af49 100644 --- a/platform/android/src/map_renderer_runnable.hpp +++ b/platform/android/src/map_renderer_runnable.hpp @@ -24,7 +24,7 @@ public: static void registerNative(jni::JNIEnv&); - MapRendererRunnable(jni::JNIEnv&, std::weak_ptr<Mailbox>); + MapRendererRunnable(jni::JNIEnv&, std::function<void()>); // Only for jni registration, unused MapRendererRunnable(jni::JNIEnv&) { @@ -40,7 +40,7 @@ public: private: jni::Global<jni::Object<MapRendererRunnable>> javaPeer; - std::weak_ptr<Mailbox> mailbox; + std::function<void()> function; }; } // namespace android |