Skip to content
This repository has been archived by the owner on Jun 21, 2023. It is now read-only.

Add runtime styling APIs on MapSnapshotter #268

Merged
merged 18 commits into from Mar 25, 2020
Merged

Add runtime styling APIs on MapSnapshotter #268

merged 18 commits into from Mar 25, 2020

Conversation

Chaoba
Copy link
Contributor

@Chaoba Chaoba commented Mar 9, 2020

Resovles #220
This pr add new api that could add runtime layer for snapshotter.
The jni binding pr: mapbox/mapbox-gl-native#16286

@Chaoba
Copy link
Contributor Author

Chaoba commented Mar 11, 2020

@tobrun Can you review MapSnapshotStyle API?
My thought is developers get MapSnapshotStyle instance from SnapshotReadyCallback.onDidFinishLoadingStyle(MapSnapshotStyle style) callback, then call API, the API call will passed into jni through MapSnapshotter class. We handle these jni calls in map_snapshotter.cpp

@chloekraw chloekraw changed the title [WIP]Add styleable snapshotter. [WIP]Add bindings for runtime styling APIs on MapSnapshotter Mar 11, 2020
Copy link
Member

@tobrun tobrun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While we aren't able to use the Style.java object itself (it's tightly coupled to a Map). I think we can reuse the Style#Builder to compose our style. This could be exposed through MapSnapshotter#Options. We will need to expose getters on the builder to get the values we need as we won't be creating an actual instance of the Style.java with build().

@Chaoba Chaoba force-pushed the kl-snapshotter branch 2 times, most recently from 4fc9a75 to dddb17e Compare March 16, 2020 09:54
@Chaoba
Copy link
Contributor Author

Chaoba commented Mar 17, 2020

@tobrun This pr is ready for review now. There are some tail works need to do:

  1. A new callback is added according changes in gl-native, should we keep the previous callback or use the new one? I would prefer keep the previous so that this change will not affect our API.
  2. Add test cases.
  3. Add documentation

@Chaoba Chaoba changed the title [WIP]Add bindings for runtime styling APIs on MapSnapshotter Add runtime styling APIs on MapSnapshotter Mar 18, 2020
@Chaoba Chaoba force-pushed the kl-snapshotter branch 3 times, most recently from 11e3747 to cb5adb6 Compare March 18, 2020 10:24
@Chaoba Chaoba mentioned this pull request Mar 19, 2020
@tobrun
Copy link
Member

tobrun commented Mar 19, 2020

Was able to hit a native crash while opening/closing some of the examples. The native crash is symbolicated with make android-ndk-stack-arm-v8:

********** Crash dump: **********
Build fingerprint: 'razer/cheryl/cheryl:9/P-MR2-RC001-RZR-N/7083:user/release-keys'
pid: 19297, tid: 19306, name: FinalizerDaemon  >>> com.mapbox.mapboxsdk.testapp <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Stack frame #00 pc 00000000000221ec  /system/lib64/libc.so (abort+116)
Stack frame #01 pc 0000000000464360  /system/lib64/libart.so (art::Runtime::Abort(char const*)+1196)
Stack frame #02 pc 0000000000008ce0  /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+724)
Stack frame #03 pc 00000000002e4ec4  /system/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1640)
Stack frame #04 pc 00000000002e5034  /system/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+116)
Stack frame #05 pc 00000000000fd024  /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+148)
Stack frame #06 pc 00000000000fb720  /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+416)
Stack frame #07 pc 00000000000fad6c  /system/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::(anonymous namespace)::JniValueType*)+628)
Stack frame #08 pc 00000000000fe528  /system/lib64/libart.so (art::(anonymous namespace)::CheckJNI::DeleteRef(char const*, _JNIEnv*, _jobject*, art::IndirectRefKind)+692)
Stack frame #09 pc 0000000000079a28  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine _JNIEnv::DeleteGlobalRef(_jobject*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/jni.h:552
Stack frame #10 pc 000000000007a368  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine jni::DefaultRefDeleter<&_JNIEnv::DeleteGlobalRef>::operator()(jni::jobject*) const at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/vendor/mapbox-base/mapbox/jni.hpp/include/jni/ownership.hpp:40
Stack frame #11 pc 00000000001eb624  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine jni::Unique<jni::Object<mbgl::android::Source>, jni::DefaultRefDeleter<&_JNIEnv::DeleteGlobalRef> >::reset(jni::jobject*) at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/vendor/mapbox-base/mapbox/jni.hpp/include/jni/unique.hpp:85
Stack frame #12 pc 00000000001eb40c  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~Source at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/style/sources/source.cpp:83
Stack frame #13 pc 000000000082d0ac  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~RasterSource at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/style/sources/raster_source.cpp:31
Stack frame #14 pc 000000000082d0d4  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~RasterSource at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/style/sources/raster_source.cpp:31
Stack frame #15 pc 00000000001f0068  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::default_delete<mbgl::android::Source>::operator()(mbgl::android::Source*) const at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2339
Stack frame #16 pc 00000000001effe0  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::unique_ptr<mbgl::android::Source, std::__ndk1::default_delete<mbgl::android::Source> >::reset(mbgl::android::Source*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2652
Stack frame #17 pc 00000000001eaec4  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~unique_ptr at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2606
Stack frame #18 pc 00000000001f0164  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine void mapbox::base::TypeWrapper::cast_deleter<std::__ndk1::unique_ptr<mbgl::android::Source, std::__ndk1::default_delete<mbgl::android::Source> > >(void*) at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/vendor/mapbox-base/mapbox/typewrapper/include/mapbox/type_wrapper.hpp:32
Stack frame #19 pc 00000000001ee900  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::unique_ptr<void, void (*)(void*)>::reset(void*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2652
Stack frame #20 pc 00000000001eea30  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~unique_ptr at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2606
Stack frame #21 pc 00000000001eae98  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~TypeWrapper at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/vendor/mapbox-base/mapbox/typewrapper/include/mapbox/type_wrapper.hpp:10
Stack frame #22 pc 00000000005b8c34  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~Source at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/src/mbgl/style/source.cpp:16
Stack frame #23 pc 0000000000a18268  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~RasterSource at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/src/mbgl/style/sources/raster_source.cpp:21
Stack frame #24 pc 0000000000a18290  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~RasterSource at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/src/mbgl/style/sources/raster_source.cpp:21
Stack frame #25 pc 00000000001f03f0  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::default_delete<mbgl::style::Source>::operator()(mbgl::style::Source*) const at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2339
Stack frame #26 pc 00000000001f0368  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> >::reset(mbgl::style::Source*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2652
Stack frame #27 pc 00000000001eb070  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~unique_ptr at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2606
Stack frame #28 pc 0000000000618e34  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::allocator<std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> > >::destroy(std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> >*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:1881
Stack frame #29 pc 0000000000618e0c  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine void std::__ndk1::allocator_traits<std::__ndk1::allocator<std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> > > >::__destroy<std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> > >(std::__ndk1::integral_constant<bool, true>, std::__ndk1::allocator<std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> > >&, std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> >*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:1743
Stack frame #30 pc 0000000000618ddc  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine void std::__ndk1::allocator_traits<std::__ndk1::allocator<std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> > > >::destroy<std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> > >(std::__ndk1::allocator<std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> > >&, std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> >*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:1596
Stack frame #31 pc 0000000000618d88  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::__vector_base<std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> >, std::__ndk1::allocator<std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> > > >::__destruct_at_end(std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> >*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/vector:427
Stack frame #32 pc 0000000000618cb8  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::__vector_base<std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> >, std::__ndk1::allocator<std::__ndk1::unique_ptr<mbgl::style::Source, std::__ndk1::default_delete<mbgl::style::Source> > > >::clear() at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/vector:370
Stack frame #33 pc 0000000000618b18  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~__vector_base at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/vector:464
Stack frame #34 pc 000000000061759c  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~vector at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/vector:556
Stack frame #35 pc 000000000061aa3c  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~CollectionBase at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/src/mbgl/style/collection.hpp:25
Stack frame #36 pc 0000000000612248  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~Collection at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/src/mbgl/style/collection.hpp:77
Stack frame #37 pc 0000000000612314  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~Impl at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/src/mbgl/style/style_impl.cpp:42
Stack frame #38 pc 0000000000612414  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~Impl at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/src/mbgl/style/style_impl.cpp:42
Stack frame #39 pc 00000000006118a0  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::default_delete<mbgl::style::Style::Impl>::operator()(mbgl::style::Style::Impl*) const at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2339
Stack frame #40 pc 0000000000611818  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::unique_ptr<mbgl::style::Style::Impl, std::__ndk1::default_delete<mbgl::style::Style::Impl> >::reset(mbgl::style::Style::Impl*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2652
Stack frame #41 pc 0000000000610928  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~unique_ptr at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2606
Stack frame #42 pc 00000000006108fc  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~Style at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/src/mbgl/style/style.cpp:15
Stack frame #43 pc 000000000030ae78  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::default_delete<mbgl::style::Style>::operator()(mbgl::style::Style*) const at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2339
Stack frame #44 pc 000000000030ad80  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::unique_ptr<mbgl::style::Style, std::__ndk1::default_delete<mbgl::style::Style> >::reset(mbgl::style::Style*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2652
Stack frame #45 pc 000000000030b9cc  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~unique_ptr at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2606
Stack frame #46 pc 000000000030ba4c  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~Impl at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/src/mbgl/map/map_impl.cpp:33
Stack frame #47 pc 000000000030bb24  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~Impl at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/src/mbgl/map/map_impl.cpp:29
Stack frame #48 pc 000000000030a600  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::default_delete<mbgl::Map::Impl>::operator()(mbgl::Map::Impl*) const at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2339
Stack frame #49 pc 000000000030a578  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::unique_ptr<mbgl::Map::Impl, std::__ndk1::default_delete<mbgl::Map::Impl> >::reset(mbgl::Map::Impl*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2652
Stack frame #50 pc 0000000000305294  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~unique_ptr at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2606
Stack frame #51 pc 0000000000305268  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~Map at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/src/mbgl/map/map.cpp:43
Stack frame #52 pc 000000000020b444  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~Impl at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/default/src/mbgl/map/map_snapshotter.cpp:140
Stack frame #53 pc 000000000020b490  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~Impl at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/default/src/mbgl/map/map_snapshotter.cpp:140
Stack frame #54 pc 0000000000217360  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::default_delete<mbgl::MapSnapshotter::Impl>::operator()(mbgl::MapSnapshotter::Impl*) const at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2339
Stack frame #55 pc 00000000002172d8  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::unique_ptr<mbgl::MapSnapshotter::Impl, std::__ndk1::default_delete<mbgl::MapSnapshotter::Impl> >::reset(mbgl::MapSnapshotter::Impl*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2652
Stack frame #56 pc 00000000001fc278  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~unique_ptr at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2606
Stack frame #57 pc 00000000001fc24c  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~MapSnapshotter at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/default/src/mbgl/map/map_snapshotter.cpp:254
Stack frame #58 pc 0000000000163ff4  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::default_delete<mbgl::MapSnapshotter>::operator()(mbgl::MapSnapshotter*) const at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2339
Stack frame #59 pc 0000000000163f78  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::unique_ptr<mbgl::MapSnapshotter, std::__ndk1::default_delete<mbgl::MapSnapshotter> >::reset(mbgl::MapSnapshotter*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2652
Stack frame #60 pc 0000000000161278  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~unique_ptr at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2606
Stack frame #61 pc 000000000016134c  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~MapSnapshotter at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:64
Stack frame #62 pc 000000000016138c  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine ~MapSnapshotter at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:64
Stack frame #63 pc 0000000000168820  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::default_delete<mbgl::android::MapSnapshotter>::operator()(mbgl::android::MapSnapshotter*) const at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2339
Stack frame #64 pc 00000000001687bc  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine std::__ndk1::unique_ptr<mbgl::android::MapSnapshotter, std::__ndk1::default_delete<mbgl::android::MapSnapshotter> >::reset(mbgl::android::MapSnapshotter*) at /home/nurbot/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2652
Stack frame #65 pc 00000000001698c4  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine operator() at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/vendor/mapbox-base/mapbox/jni.hpp/include/jni/native_method.hpp:349
Stack frame #66 pc 00000000001697cc  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine operator() at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/vendor/mapbox-base/mapbox/jni.hpp/include/jni/native_method.hpp:127
Stack frame #67 pc 000000000016974c  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine __invoke at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/vendor/mapbox-base/mapbox/jni.hpp/include/jni/native_method.hpp:125
Stack frame #68 pc 000000000016999c  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine operator()<jni::jobject *> at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/vendor/mapbox-base/mapbox/jni.hpp/include/jni/native_method.hpp:57
Stack frame #69 pc 0000000000169958  /data/app/com.mapbox.mapboxsdk.testapp-TajUTUus2d34xXbXuJC9Cw==/lib/arm64/libmapbox-gl.so: Routine __invoke<jni::jobject *> at /home/nurbot/ws/mapbox-gl-native-android/vendor/mapbox-gl-native/vendor/mapbox-base/mapbox/jni.hpp/include/jni/native_method.hpp:53
Stack frame #70 pc 000000000055e3e0  /system/lib64/libart.so (art_quick_generic_jni_trampoline+144)
Stack frame #71 pc 0000000000555388  /system/lib64/libart.so (art_quick_invoke_stub+584)
Stack frame #72 pc 00000000000cf6f4  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
Stack frame #73 pc 000000000027f324  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
Stack frame #74 pc 000000000027932c  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+968)
Stack frame #75 pc 00000000005249a4  /system/lib64/libart.so (MterpInvokeVirtual+588)
Stack frame #76 pc 0000000000547914  /system/lib64/libart.so (ExecuteMterpImpl+14228)
Stack frame #77 pc 00000000000a7924  /system/framework/boot-core-libart.vdex (java.lang.Daemons$FinalizerDaemon.doFinalize+22)
Stack frame #78 pc 0000000000253030  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.926001973+488)
Stack frame #79 pc 0000000000258b24  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
Stack frame #80 pc 0000000000279310  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
Stack frame #81 pc 0000000000525ce4  /system/lib64/libart.so (MterpInvokeDirect+296)
Stack frame #82 pc 0000000000547a14  /system/lib64/libart.so (ExecuteMterpImpl+14484)
Stack frame #83 pc 00000000000a7a0a  /system/framework/boot-core-libart.vdex (java.lang.Daemons$FinalizerDaemon.runInternal+162)
Stack frame #84 pc 0000000000253030  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.926001973+488)
Stack frame #85 pc 0000000000258b24  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
Stack frame #86 pc 0000000000279310  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
Stack frame #87 pc 00000000005249a4  /system/lib64/libart.so (MterpInvokeVirtual+588)
Stack frame #88 pc 0000000000547914  /system/lib64/libart.so (ExecuteMterpImpl+14228)
Stack frame #89 pc 00000000000a7804  /system/framework/boot-core-libart.vdex (java.lang.Daemons$Daemon.run+20)
Stack frame #90 pc 0000000000253030  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.926001973+488)
Stack frame #91 pc 0000000000258b24  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
Stack frame #92 pc 0000000000279310  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
Stack frame #93 pc 0000000000525920  /system/lib64/libart.so (MterpInvokeInterface+1392)
Stack frame #94 pc 0000000000547b14  /system/lib64/libart.so (ExecuteMterpImpl+14740)
Stack frame #95 pc 00000000000c4b3a  /system/framework/boot-core-oj.vdex (java.lang.Thread.run+12)
Stack frame #96 pc 0000000000253030  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.926001973+488)
Stack frame #97 pc 0000000000515238  /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
Stack frame #98 pc 000000000055e4fc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
Stack frame #99 pc 0000000000555388  /system/lib64/libart.so (art_quick_invoke_stub+584)
Stack frame #100 pc 00000000000cf6f4  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
Stack frame #101 pc 000000000045ca8c  /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
Stack frame #102 pc 000000000045db48  /system/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+424)
Stack frame #103 pc 0000000000488a24  /system/lib64/libart.so (art::Thread::CreateCallback(void*)+1120)
Stack frame #104 pc 0000000000090024  /system/lib64/libc.so (__pthread_start(void*)+36)
Stack frame #105 pc 0000000000023aa8  /system/lib64/libc.so (__start_thread+68)


@Chaoba
Copy link
Contributor Author

Chaoba commented Mar 19, 2020

I am able to reproduce the crash too. It seem still happens during the deconstruction process.

2020-03-19 16:41:12.238 9508-9520/com.mapbox.mapboxsdk.testapp A/pboxsdk.testap: java_vm_ext.cc:545] JNI DETECTED ERROR IN APPLICATION: thread Thread[7,tid=9520,Native,Thread*=0xe41e2a00,peer=0x146c02a8,"FinalizerDaemon"] using JNIEnv* from thread Thread[1,tid=9508,Runnable,Thread*=0xe4174000,peer=0x74e02ee0,"main"]
2020-03-19 16:41:12.238 9508-9520/com.mapbox.mapboxsdk.testapp A/pboxsdk.testap: java_vm_ext.cc:545]     in call to DeleteGlobalRef
2020-03-19 16:41:12.238 9508-9520/com.mapbox.mapboxsdk.testapp A/pboxsdk.testap: java_vm_ext.cc:545]     from void com.mapbox.mapboxsdk.snapshotter.MapSnapshotter.finalize()

@Chaoba
Copy link
Contributor Author

Chaoba commented Mar 20, 2020

Find another crash by opening "Map Snapshotter with Marker" and back for several times. From the stacktrace, it is related with DeleteOnThread

adb logcat | ndk-stack -sym MapboxGLAndroidSDK/build/intermediates/cmake/debug/obj/x86/
********** Crash dump: **********
Build fingerprint: 'google/sdk_gphone_x86_arm/generic_x86_arm:9/PSR1.180720.117/5875966:user/release-keys'
#00 0x001b321a /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0> >::first() const
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2284:0
#01 0x001b2e49 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__alloc_func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::__target() const
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1490:51
#02 0x001b2376 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::__clone(std::__ndk1::__function::__base<void ()>*) const
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1626:29
#03 0x0006fcae /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__value_func<void ()>::__value_func(std::__ndk1::__function::__value_func<void ()>&&)
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1745:23
#04 0x0006fb21 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::function<void ()>::function(std::__ndk1::function<void ()>&&)
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:2277:7
#05 0x00193d7c /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair_elem<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> >, 1, false>::__compressed_pair_elem<std::__ndk1::function<void ()>&&, std::__ndk1::tuple<>&&, std::__ndk1::shared_ptr<std::__ndk1::atomic<bool> >&, 0u, 1u, 2u>(std::__ndk1::piecewise_construct_t, std::__ndk1::tuple<std::__ndk1::function<void ()>&&, std::__ndk1::tuple<>&&, std::__ndk1::shared_ptr<std::__ndk1::atomic<bool> >&>, std::__ndk1::__tuple_indices<0u, 1u, 2u>)
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2156:18
#06 0x00193793 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair<std::__ndk1::allocator<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> > >, mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> > >::__compressed_pair<std::__ndk1::allocator<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> > >&, std::__ndk1::function<void ()>&&, std::__ndk1::tuple<>&&, std::__ndk1::shared_ptr<std::__ndk1::atomic<bool> >&>(std::__ndk1::piecewise_construct_t, std::__ndk1::tuple<std::__ndk1::allocator<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> > >&>, std::__ndk1::tuple<std::__ndk1::function<void ()>&&, std::__ndk1::tuple<>&&, std::__ndk1::shared_ptr<std::__ndk1::atomic<bool> >&>)
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2259:9
#07 0x00193217 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__shared_ptr_emplace<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> >, std::__ndk1::allocator<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> > > >::__shared_ptr_emplace<std::__ndk1::function<void ()>, std::__ndk1::tuple<>, std::__ndk1::shared_ptr<std::__ndk1::atomic<bool> >&>(std::__ndk1::allocator<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> > >, std::__ndk1::function<void ()>&&, std::__ndk1::tuple<>&&, std::__ndk1::shared_ptr<std::__ndk1::atomic<bool> >&)
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:3672:16
#08 0x00192df5 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::shared_ptr<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> > > std::__ndk1::shared_ptr<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> > >::make_shared<std::__ndk1::function<void ()>, std::__ndk1::tuple<>, std::__ndk1::shared_ptr<std::__ndk1::atomic<bool> >&>(std::__ndk1::function<void ()>&&, std::__ndk1::tuple<>&&, std::__ndk1::shared_ptr<std::__ndk1::atomic<bool> >&)
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:4331:26
#09 0x00192bd8 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::enable_if<!(is_array<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> > >::value), std::__ndk1::shared_ptr<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> > > >::type std::__ndk1::make_shared<mbgl::WorkTaskImpl<std::__ndk1::function<void ()>, std::__ndk1::tuple<> >, std::__ndk1::function<void ()>, std::__ndk1::tuple<>, std::__ndk1::shared_ptr<std::__ndk1::atomic<bool> >&>(std::__ndk1::function<void ()>&&, std::__ndk1::tuple<>&&, std::__ndk1::shared_ptr<std::__ndk1::atomic<bool> >&)
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:4710:12
#10 0x00192a6a /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::shared_ptr<mbgl::WorkTask> mbgl::WorkTask::make<std::__ndk1::function<void ()> >(std::__ndk1::function<void ()>&&)
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/include/mbgl/util/work_task_impl.hpp:59:12
#11 0x001928f7 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
void mbgl::util::RunLoop::invoke<std::__ndk1::function<void ()> >(mbgl::util::RunLoop::Priority, std::__ndk1::function<void ()>&&)
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/include/mbgl/util/run_loop.hpp:65:24
#12 0x0019286f /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
void mbgl::util::RunLoop::invoke<std::__ndk1::function<void ()> >(std::__ndk1::function<void ()>&&)
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/include/mbgl/util/run_loop.hpp:71:9
#13 0x0018dc59 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
mbgl::util::RunLoop::schedule(std::__ndk1::function<void ()>)
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/include/mbgl/util/run_loop.hpp:83:56
#14 0x001aae70 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:23:24
#15 0x001b1602 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__shared_ptr_pointer<mbgl::MapSnapshotter*, mbgl::android::MapSnapshotter::DeleteOnThread, std::__ndk1::allocator<mbgl::MapSnapshotter> >::__on_zero_shared()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:3640:5
#16 0x01232d0f /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__shared_count::__release_shared()
/Volumes/Android/buildbot/src/googleplex-android/ndk-release-r20/external/libcxx/src/memory.cpp:49:9
std::__ndk1::__shared_weak_count::__release_shared()
/Volumes/Android/buildbot/src/googleplex-android/ndk-release-r20/external/libcxx/src/memory.cpp:70:0
#17 0x001ab7c4 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::shared_ptr<mbgl::MapSnapshotter>::~shared_ptr()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:4522:19
#18 0x001ab779 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0::~$_0()
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:24:13
#19 0x001b2a49 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair_elem<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, 0, false>::~__compressed_pair_elem()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2134:8
#20 0x001b2c29 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0> >::~__compressed_pair()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2211:7
#21 0x001b3e99 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__alloc_func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::destroy()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1546:38
#22 0x001b23ec /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::destroy()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1633:10
#23 0x0006fe29 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__value_func<void ()>::~__value_func()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1758:19
#24 0x0006fbe9 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::function<void ()>::~function()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:2334:43
#25 0x001aae88 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:23:9
#26 0x001b1602 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__shared_ptr_pointer<mbgl::MapSnapshotter*, mbgl::android::MapSnapshotter::DeleteOnThread, std::__ndk1::allocator<mbgl::MapSnapshotter> >::__on_zero_shared()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:3640:5
#27 0x01232d0f /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__shared_count::__release_shared()
/Volumes/Android/buildbot/src/googleplex-android/ndk-release-r20/external/libcxx/src/memory.cpp:49:9
std::__ndk1::__shared_weak_count::__release_shared()
/Volumes/Android/buildbot/src/googleplex-android/ndk-release-r20/external/libcxx/src/memory.cpp:70:0
#28 0x001ab7c4 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::shared_ptr<mbgl::MapSnapshotter>::~shared_ptr()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:4522:19
#29 0x001ab779 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0::~$_0()
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:24:13
#30 0x001b2a49 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair_elem<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, 0, false>::~__compressed_pair_elem()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2134:8
#31 0x001b2c29 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0> >::~__compressed_pair()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2211:7
#32 0x001b3e99 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__alloc_func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::destroy()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1546:38
#33 0x001b23ec /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::destroy()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1633:10
#34 0x0006fe29 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__value_func<void ()>::~__value_func()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1758:19
#35 0x0006fbe9 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::function<void ()>::~function()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:2334:43
#36 0x001aae88 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:23:9
#37 0x001b1602 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__shared_ptr_pointer<mbgl::MapSnapshotter*, mbgl::android::MapSnapshotter::DeleteOnThread, std::__ndk1::allocator<mbgl::MapSnapshotter> >::__on_zero_shared()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:3640:5
#38 0x01232d0f /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__shared_count::__release_shared()
/Volumes/Android/buildbot/src/googleplex-android/ndk-release-r20/external/libcxx/src/memory.cpp:49:9
std::__ndk1::__shared_weak_count::__release_shared()
/Volumes/Android/buildbot/src/googleplex-android/ndk-release-r20/external/libcxx/src/memory.cpp:70:0
#39 0x001ab7c4 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::shared_ptr<mbgl::MapSnapshotter>::~shared_ptr()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:4522:19
#40 0x001ab779 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0::~$_0()
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:24:13
#41 0x001b2a49 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair_elem<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, 0, false>::~__compressed_pair_elem()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2134:8
#42 0x001b2c29 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0> >::~__compressed_pair()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2211:7
#43 0x001b3e99 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__alloc_func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::destroy()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1546:38
#44 0x001b23ec /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::destroy()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1633:10
#45 0x0006fe29 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__value_func<void ()>::~__value_func()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1758:19
#46 0x0006fbe9 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::function<void ()>::~function()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:2334:43
#47 0x001aae88 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:23:9
#48 0x001b1602 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__shared_ptr_pointer<mbgl::MapSnapshotter*, mbgl::android::MapSnapshotter::DeleteOnThread, std::__ndk1::allocator<mbgl::MapSnapshotter> >::__on_zero_shared()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:3640:5
#49 0x01232d0f /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__shared_count::__release_shared()
/Volumes/Android/buildbot/src/googleplex-android/ndk-release-r20/external/libcxx/src/memory.cpp:49:9
std::__ndk1::__shared_weak_count::__release_shared()
/Volumes/Android/buildbot/src/googleplex-android/ndk-release-r20/external/libcxx/src/memory.cpp:70:0
#50 0x001ab7c4 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::shared_ptr<mbgl::MapSnapshotter>::~shared_ptr()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:4522:19
#51 0x001ab779 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0::~$_0()
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:24:13
#52 0x001b2a49 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair_elem<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, 0, false>::~__compressed_pair_elem()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2134:8
#53 0x001b2c29 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0> >::~__compressed_pair()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2211:7
#54 0x001b3e99 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__alloc_func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::destroy()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1546:38
#55 0x001b23ec /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::destroy()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1633:10
#56 0x0006fe29 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__value_func<void ()>::~__value_func()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1758:19
#57 0x0006fbe9 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::function<void ()>::~function()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:2334:43
#58 0x001aae88 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:23:9
#59 0x001b1602 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__shared_ptr_pointer<mbgl::MapSnapshotter*, mbgl::android::MapSnapshotter::DeleteOnThread, std::__ndk1::allocator<mbgl::MapSnapshotter> >::__on_zero_shared()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:3640:5
#60 0x01232d0f /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__shared_count::__release_shared()
/Volumes/Android/buildbot/src/googleplex-android/ndk-release-r20/external/libcxx/src/memory.cpp:49:9
std::__ndk1::__shared_weak_count::__release_shared()
/Volumes/Android/buildbot/src/googleplex-android/ndk-release-r20/external/libcxx/src/memory.cpp:70:0
#61 0x001ab7c4 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::shared_ptr<mbgl::MapSnapshotter>::~shared_ptr()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:4522:19
#62 0x001ab779 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0::~$_0()
/Users/kevin/Android/mapbox-gl-native-android/vendor/mapbox-gl-native/platform/android/src/snapshotter/map_snapshotter.cpp:24:13
#63 0x001b2a49 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair_elem<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, 0, false>::~__compressed_pair_elem()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2134:8
#64 0x001b2c29 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__compressed_pair<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0> >::~__compressed_pair()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/memory:2211:7
#65 0x001b3e99 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__alloc_func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::destroy()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1546:38
#66 0x001b23ec /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__func<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0, std::__ndk1::allocator<mbgl::android::MapSnapshotter::DeleteOnThread::operator()(mbgl::MapSnapshotter*) const::$_0>, void ()>::destroy()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1633:10
#67 0x0006fe29 /data/app/com.mapbox.mapboxsdk.testapp-w3xdZYMqrsUCWbQkFIKdWg==/lib/x86/libmapbox-gl.so
std::__ndk1::__function::__value_func<void ()>::~__value_func()
/Users/kevin/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/functional:1758:19
Crash dump is completed

@Chaoba
Copy link
Contributor Author

Chaoba commented Mar 20, 2020

And for the previous crash, it can only reproduced with emulator. I have tried with my XiaoMi8, not able to reproduce it.

@tobrun
Copy link
Member

tobrun commented Mar 20, 2020

Tested this out and is looking 👍
To avoid confusion for our users, could we rename current Map Snapshot with Marker to Map Snapshot with bitmap overlay? Could you add an example Map Snapshot with Symbol Layer or Map Snapshot with heatmap layer to showcase the usage of this new API to develoeprs?

nativeSetStyleUrl(styleUrl);
}

// TODO: Documentation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixup todo

@Chaoba
Copy link
Contributor Author

Chaoba commented Mar 23, 2020

Could you add an example Map Snapshot with Symbol Layer or Map Snapshot with heatmap layer to showcase the usage of this new API to develoeprs?

We already have symbol layer example in https://github.com/mapbox/mapbox-gl-native-android/pull/268/files#diff-4707ad1bd4eb1163d43de02e0757f695R146, heatmap example added.

@chloekraw
Copy link
Contributor

@Chaoba @tobrun @alexshalamov have we been able to repro and fix mapbox/mapbox-gl-native#11669?

Copy link
Member

@tobrun tobrun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@Chaoba Chaoba merged commit da6d8a2 into master Mar 25, 2020
@Chaoba Chaoba deleted the kl-snapshotter branch March 25, 2020 01:59
Chaoba pushed a commit that referenced this pull request Mar 26, 2020
* Add styleable snapshotter.

* Add style API for snapshotter

* Add observer interface to snapshotter

* WIP Add styling to snapshotter activity

* Update interface and implement addlayer functions.

* Deprecate methods instead of removing

* Implement addSource functions.

* Implement addImage function

* Still use the previous callback interface.

* Expose onStyleDidloaded interface

* Add setStyle method

* Start native snapshotter from start method

* Fix snapshotter test.

* Fix check style

* Keep the original interface

* Update gl-native

* Add demo for snapshotter heatmap layer

* bump gl-native

Co-authored-by: Alexander Shalamov <alexander.shalamov@mapbox.com>
(cherry picked from commit da6d8a2)
Chaoba pushed a commit that referenced this pull request Mar 27, 2020
* Add styleable snapshotter.

* Add style API for snapshotter

* Add observer interface to snapshotter

* WIP Add styling to snapshotter activity

* Update interface and implement addlayer functions.

* Deprecate methods instead of removing

* Implement addSource functions.

* Implement addImage function

* Still use the previous callback interface.

* Expose onStyleDidloaded interface

* Add setStyle method

* Start native snapshotter from start method

* Fix snapshotter test.

* Fix check style

* Keep the original interface

* Update gl-native

* Add demo for snapshotter heatmap layer

* bump gl-native

Co-authored-by: Alexander Shalamov <alexander.shalamov@mapbox.com>
(cherry picked from commit da6d8a2)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants