summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-10-09 16:23:12 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-10-09 23:46:11 +0300
commitf62e5b00c98b50e9d9a1e76f4ae5e70129e83ff4 (patch)
treed5c639664127f009ff3d720be518f6bd157d7e4b /platform
parentda490c2b90125bf82fc84b1782a795e48ab5a548 (diff)
downloadqtlocation-mapboxgl-f62e5b00c98b50e9d9a1e76f4ae5e70129e83ff4.tar.gz
[core] Introduce Scheduler::makeWeakPtr()
Diffstat (limited to 'platform')
-rw-r--r--platform/android/src/map_renderer.hpp2
-rw-r--r--platform/qt/src/qmapboxgl_scheduler.hpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/platform/android/src/map_renderer.hpp b/platform/android/src/map_renderer.hpp
index 664da20a94..047f1870c7 100644
--- a/platform/android/src/map_renderer.hpp
+++ b/platform/android/src/map_renderer.hpp
@@ -68,6 +68,7 @@ public:
// From Scheduler. Schedules by using callbacks to the
// JVM to process the mailbox on the right thread.
void schedule(std::function<void()> scheduled) override;
+ mapbox::base::WeakPtr<Scheduler> makeWeakPtr() override { return weakFactory.makeWeakPtr(); }
void requestRender();
@@ -122,6 +123,7 @@ private:
std::atomic<bool> destroyed {false};
std::unique_ptr<SnapshotCallback> snapshotCallback;
+ mapbox::base::WeakPtrFactory<Scheduler> weakFactory{this};
};
} // namespace android
diff --git a/platform/qt/src/qmapboxgl_scheduler.hpp b/platform/qt/src/qmapboxgl_scheduler.hpp
index b34dd3d5b8..0b000b9fcc 100644
--- a/platform/qt/src/qmapboxgl_scheduler.hpp
+++ b/platform/qt/src/qmapboxgl_scheduler.hpp
@@ -19,6 +19,7 @@ public:
// mbgl::Scheduler implementation.
void schedule(std::function<void()> scheduled) final;
+ mapbox::base::WeakPtr<Scheduler> makeWeakPtr() override { return weakFactory.makeWeakPtr(); }
void processEvents();
@@ -30,4 +31,5 @@ private:
std::mutex m_taskQueueMutex;
std::queue<std::function<void()>> m_taskQueue;
+ mapbox::base::WeakPtrFactory<Scheduler> weakFactory{this};
};