summaryrefslogtreecommitdiff
path: root/platform/android/src/snapshotter/map_snapshotter.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/snapshotter/map_snapshotter.hpp')
-rw-r--r--platform/android/src/snapshotter/map_snapshotter.hpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/platform/android/src/snapshotter/map_snapshotter.hpp b/platform/android/src/snapshotter/map_snapshotter.hpp
index 1da4f8275b..e6f543649f 100644
--- a/platform/android/src/snapshotter/map_snapshotter.hpp
+++ b/platform/android/src/snapshotter/map_snapshotter.hpp
@@ -3,9 +3,7 @@
#include <jni/jni.hpp>
#include <mbgl/map/map_snapshotter.hpp>
#include <mbgl/util/util.hpp>
-
#include <memory>
-#include <mapbox/weak.hpp>
#include "../file_source.hpp"
#include "../geometry/lat_lng_bounds.hpp"
@@ -65,6 +63,15 @@ public:
void onStyleImageMissing(const std::string&) override;
private:
+ struct DeleteOnThread {
+ DeleteOnThread();
+ explicit DeleteOnThread(mapbox::base::WeakPtr<mbgl::Scheduler>);
+ void operator()(mbgl::MapSnapshotter* p) const;
+ private:
+ mapbox::base::WeakPtr<mbgl::Scheduler> weakScheduler;
+ };
+
+private:
MBGL_STORE_THREAD(tid);
JavaVM *vm = nullptr;
@@ -77,8 +84,7 @@ private:
void activateFilesource(JNIEnv&);
void deactivateFilesource(JNIEnv&);
bool activatedFilesource = false;
- std::unique_ptr<mbgl::MapSnapshotter> snapshotter;
- mapbox::base::WeakPtr<mbgl::Scheduler> weakScheduler;
+ std::unique_ptr<mbgl::MapSnapshotter, DeleteOnThread> snapshotter;
};
} // namespace android