Skip to content

iOS - EXC_BAD_ACCESS - Attempted to dereference garbage pointer #3589

@ludovicthomas

Description

@ludovicthomas

Description

We upgraded recently Skia from 2.2.3 to 2.2.21 to reuse the useColorBuffer fix and had a lot of Skia memory crashes after this update.

We then updates to 2.4.6 last Monday as a lot of memory crash issues where fixed since 2.2.21.
For Android, all issues are gone, and our crash rate is back to normal.

On iOS, sadly it's not the case and the crash rate remain high.

We are using Skia in two places:

  • drawing an audio waveform using Atlas with useRectBuffer / useRSXformBuffer / useColorBuffer and reanimated (canvas, group, atlas)
  • drawing an animated logo on app bootstrap (canvas, group, circle, text)

React Native Skia Version

2.4.6

React Native Version

0.79.6

Using New Architecture

  • Enabled

Steps to Reproduce

Hard to reproduce, it's random.
Not related to a single device, or iOS versions.

We can provide the component code if needed.

Snack, Code Example, Screenshot, or Link to Repository

Stacktrace 1

CrashReporter Key:  7d312decfada0f03efd8f29a781c650f322242fb
Hardware Model:     iPhone12,1
Process:            LANDR
Identifier:         com.landr.mobile.app
Version:            2.8.3
Role:               Foreground
OS Version:         iOS 26.0
Exception Type:     EXC_BAD_ACCESS 
Exception Subtype:  KERN_INVALID_ADDRESS


EXC_BAD_ACCESS: Attempted to dereference garbage pointer 0x86000874656371.

0  hermes +0x24dc0                 hermes::vm::DictPropertyMap::lookupEntryFor(hermes::vm::DictPropertyMap*, hermes::vm::SymbolID)
1  hermes +0x2ad38                 hermes::vm::HiddenClass::findProperty(hermes::vm::PseudoHandle<hermes::vm::HiddenClass>, hermes::vm::Runtime&, hermes::vm::SymbolID, hermes::vm::PropertyFlags, hermes::vm::NamedPropertyDescriptor&)
2  hermes +0x42450                 hermes::vm::JSObject::getNamedDescriptorUnsafe(hermes::vm::Handle<hermes::vm::JSObject>, hermes::vm::Runtime&, hermes::vm::SymbolID, hermes::vm::PropertyFlags, hermes::vm::NamedPropertyDescriptor&)
3  hermes +0x42b90                 hermes::vm::JSObject::getNamedWithReceiver_RJS(hermes::vm::Handle<hermes::vm::JSObject>, hermes::vm::Runtime&, hermes::vm::SymbolID, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::PropOpFlags, hermes::vm::PropertyCacheEntry*)
4  hermes +0xc0f0                  facebook::hermes::HermesRuntimeImpl::throwPendingError()::$_3::operator()(hermes::vm::SymbolID, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const
5  hermes +0xbf58                  facebook::hermes::HermesRuntimeImpl::throwPendingError()
6  hermes +0xa0c0                  facebook::hermes::HermesRuntimeImpl::getProperty(facebook::jsi::Object const&, facebook::jsi::String const&)
7  LANDR +0xe60c68                 facebook::jsi::Object::getProperty(facebook::jsi::Runtime&, facebook::jsi::String const&) const (jsi-inl.h:96:18)
8  LANDR +0xe60c68                 facebook::jsi::Object::getProperty(facebook::jsi::Runtime&, char const*) const (jsi-inl.h:92:10)
9  LANDR +0xe60c68                 void RNSkia::convertPropertyImpl<std::__1::vector<SkRect, std::__1::allocator<SkRect>>, std::__1::vector<SkRect, std::__1::allocator<SkRect>>>(facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::vector<SkRect, std::__1::allocator<SkRect>>&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&)::'lambda'(facebook::jsi::Runtime&, facebook::jsi::Object const&)::operator()(facebook::jsi::Runtime&, facebook::jsi::Object const&) const (Convertor.h:89:24)
10 LANDR +0xe60abc                 void RNSkia::convertPropertyImpl<std::__1::vector<SkRect, std::__1::allocator<SkRect>>, std::__1::vector<SkRect, std::__1::allocator<SkRect>>>(facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::vector<SkRect, std::__1::allocator<SkRect>>&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&) (Convertor.h:93:5)
11 LANDR +0xe5ff10                 void RNSkia::convertProperty<std::__1::vector<SkRect, std::__1::allocator<SkRect>>>(facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::vector<SkRect, std::__1::allocator<SkRect>>&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&) (Convertor.h:104:3)
12 LANDR +0xe5ff10                 RNSkia::AtlasCmd::AtlasCmd(std::__1::shared_ptr<RNSkia::RNSkPlatformContext>, facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&) (Drawings.h:935:5)
13 LANDR +0xe5fd4c                 RNSkia::AtlasCmd::AtlasCmd(std::__1::shared_ptr<RNSkia::RNSkPlatformContext>, facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&) (Drawings.h:933:60)
14 LANDR +0xe5fd4c                 std::__1::__unique_if<RNSkia::AtlasCmd>::__unique_single std::__1::make_unique[abi:ne190102]<RNSkia::AtlasCmd, std::__1::shared_ptr<RNSkia::RNSkPlatformContext>&, facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&>(std::__1::shared_ptr<RNSkia::RNSkPlatformContext>&, facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&) (unique_ptr.h:635:30)
15 LANDR +0xe5fd4c                 RNSkia::Recorder::drawAtlas(facebook::jsi::Runtime&, facebook::jsi::Object const&) (RNRecorder.h:360:9)
16 LANDR +0xe3e2c0                 RNSkia::JsiRecorder::drawAtlas(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long) (JsiRecorder.h:289:18)
17 LANDR +0x86e604                 std::__1::__function::__value_func<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>::operator()[abi:ne190102](facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*&&, unsigned long&&) const (function.h:430:12)
18 LANDR +0x86e604                 std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>::operator()(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long) const (function.h:989:10)
19 hermes +0x13788                 std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>::operator()(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long) const
20 hermes +0x13450                 facebook::hermes::HermesRuntimeImpl::HFContext::func(void*, hermes::vm::Runtime&, hermes::vm::NativeArgs)
21 hermes +0x230f0                 hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime&)
22 hermes +0x2f6f8                 hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime&, hermes::vm::PinnedHermesValue*)
23 hermes +0x31104                 hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&)
24 hermes +0x306f0                 hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
25 hermes +0x231d8                 hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&)
26 hermes +0x21c40                 hermes::vm::Callable::executeCall3(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::HermesValue, hermes::vm::HermesValue, hermes::vm::HermesValue, bool)
27 hermes +0x7a4a4                 hermes::vm::arrayPrototypeForEach(void*, hermes::vm::Runtime&, hermes::vm::NativeArgs)
28 hermes +0x230f0                 hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime&)
29 hermes +0x2f6f8                 hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime&, hermes::vm::PinnedHermesValue*)
30 hermes +0x31104                 hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&)
31 hermes +0x306f0                 hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
32 hermes +0x231d8                 hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&)
33 hermes +0x21c40                 hermes::vm::Callable::executeCall3(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::HermesValue, hermes::vm::HermesValue, hermes::vm::HermesValue, bool)
34 hermes +0x7a4a4                 hermes::vm::arrayPrototypeForEach(void*, hermes::vm::Runtime&, hermes::vm::NativeArgs)
35 hermes +0x230f0                 hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime&)
36 hermes +0x2f6f8                 hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime&, hermes::vm::PinnedHermesValue*)
37 hermes +0x31104                 hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&)
38 hermes +0x306f0                 hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
39 hermes +0x231d8                 hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&)
40 hermes +0x22de4                 hermes::vm::BoundFunction::_boundCall(hermes::vm::BoundFunction*, hermes::inst::Inst const*, hermes::vm::Runtime&)
41 hermes +0xb878                  facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)
42 LANDR +0xc59fcc                 facebook::jsi::Function::call(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned long) const (jsi-inl.h:268:18)
43 LANDR +0xc59fcc                 facebook::jsi::Function::call(facebook::jsi::Runtime&, std::initializer_list<facebook::jsi::Value>) const (jsi-inl.h:273:10)
44 LANDR +0xc59fcc                 facebook::react::Task::execute(facebook::jsi::Runtime&, bool) (Task.cpp:45:19)
45 LANDR +0xc539d0                 facebook::react::RuntimeScheduler_Legacy::executeTask(facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::Task> const&, bool) (RuntimeScheduler_Legacy.cpp:265:25)
46 LANDR +0xc53ce8                 facebook::react::RuntimeScheduler_Legacy::startWorkLoop(facebook::jsi::Runtime&) (RuntimeScheduler_Legacy.cpp:235:7)
47 LANDR +0xba02c0                 std::__1::__function::__value_func<void (facebook::jsi::Runtime&)>::operator()[abi:ne190102](facebook::jsi::Runtime&) const (function.h:430:12)
48 LANDR +0xba02c0                 std::__1::function<void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) const (function.h:989:10)
49 LANDR +0xba02c0                 RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()::operator()() const (RCTSurfacePresenterBridgeAdapter.mm:75:7)
50 LANDR +0xba02c0                 decltype(std::declval<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()&>()()) std::__1::__invoke[abi:ne190102]<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()&>(RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()&) (invoke.h:149:25)
51 LANDR +0xba02c0                 void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne190102]<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()&>(RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()&) (invoke.h:224:5)
52 LANDR +0xba02c0                 std::__1::__function::__alloc_func<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'(), std::__1::allocator<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()>, void ()>::operator()[abi:ne190102]() (function.h:171:12)
53 LANDR +0xba02c0                 std::__1::__function::__func<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'(), std::__1::allocator<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()>, void ()>::operator()() (function.h:313:10)
54 LANDR +0xc01f04                 std::__1::__function::__value_func<void (facebook::jsi::Runtime&)>::operator()[abi:ne190102](facebook::jsi::Runtime&) const (function.h:430:12)
55 LANDR +0xc01f04                 std::__1::function<void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) const (function.h:989:10)
56 LANDR +0xc01f04                 facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0::operator()(facebook::react::JSExecutor*) const (Instance.cpp:358:11)
57 LANDR +0xc01f04                 decltype(std::declval<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0&>()(std::declval<facebook::react::JSExecutor*>())) std::__1::__invoke[abi:ne190102]<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0&, facebook::react::JSExecutor*>(facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0&, facebook::react::JSExecutor*&&) (invoke.h:149:25)
58 LANDR +0xc01f04                 void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne190102]<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0&, facebook::react::JSExecutor*>(facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0&, facebook::react::JSExecutor*&&) (invoke.h:224:5)
59 LANDR +0xc01f04                 std::__1::__function::__alloc_func<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0, std::__1::allocator<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0>, void (facebook::react::JSExecutor*)>::operator()[abi:ne190102](facebook::react::JSExecutor*&&) (function.h:171:12)
60 LANDR +0xc01f04                 std::__1::__function::__func<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0, std::__1::allocator<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0>, void (facebook::react::JSExecutor*)>::operator()(facebook::react::JSExecutor*&&) (function.h:313:10)
61 LANDR +0xc0a030                 std::__1::__function::__value_func<void (facebook::react::JSExecutor*)>::operator()[abi:ne190102](facebook::react::JSExecutor*&&) const (function.h:430:12)
62 LANDR +0xc0a030                 std::__1::function<void (facebook::react::JSExecutor*)>::operator()(facebook::react::JSExecutor*) const (function.h:989:10)
63 LANDR +0xc0a030                 facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0::operator()() const (NativeToJsBridge.cpp:308:9)
64 LANDR +0xc0a030                 decltype(std::declval<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0&>()()) std::__1::__invoke[abi:ne190102]<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0&>(facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0&) (invoke.h:149:25)
65 LANDR +0xc0a030                 void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne190102]<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0&>(facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0&) (invoke.h:224:5)
66 LANDR +0xc0a030                 std::__1::__function::__alloc_func<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0, std::__1::allocator<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0>, void ()>::operator()[abi:ne190102]() (function.h:171:12)
67 LANDR +0xc0a030                 std::__1::__function::__func<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0, std::__1::allocator<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0>, void ()>::operator()() (function.h:313:10)
68 LANDR +0xa1e4cc                 std::__1::__function::__value_func<void ()>::operator()[abi:ne190102]() const (function.h:430:12)
69 LANDR +0xa1e4cc                 std::__1::function<void ()>::operator()() const (function.h:989:10)
70 LANDR +0xa1e4cc                 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) (RCTCxxUtils.mm:73:7)
71 LANDR +0xa2cc9c                 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) (RCTMessageThread.mm:68:20)
72 LANDR +0xa2caa8                 std::__1::__function::__value_func<void ()>::operator()[abi:ne190102]() const (function.h:430:12)
73 LANDR +0xa2caa8                 std::__1::function<void ()>::operator()() const (function.h:989:10)
74 LANDR +0xa2caa8                 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) (RCTMessageThread.mm:44:7)
75 CoreFoundation +0x1c4f4         ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
76 CoreFoundation +0x1c1c0         ___CFRunLoopDoBlocks
77 CoreFoundation +0x1d89c         ___CFRunLoopRun
78 CoreFoundation +0x1cc40         __CFRunLoopRunSpecificWithOptions
79 LANDR +0xa147d0                 +[RCTCxxBridge runRunLoop] (RCTCxxBridge.mm:347:12)
80 Foundation +0x61d38             ___NSThread__start__
81 libsystem_pthread.dylib +0x4448 __pthread_start

Stacktrace 2:

CrashReporter Key:  8beeb9642ba4ae8ea595693339106ed7a2cf024c
Hardware Model:     iPhone14,3
Process:            LANDR
Identifier:         com.landr.mobile.app
Version:            2.8.3
Role:               Foreground
OS Version:         iOS 26.1
Exception Type:     EXC_BAD_ACCESS 
Exception Subtype:  KERN_INVALID_ADDRESS


EXC_BAD_ACCESS: Attempted to dereference garbage pointer 0x3bea82b8a6492040.

0  LANDR +0x10554c8           GrFragmentProcessors::Make(SkShader const*, GrFPArgs const&, SkShaders::MatrixRec const&)
1  LANDR +0x10559dc           GrFragmentProcessors::Make(SkShader const*, GrFPArgs const&, SkShaders::MatrixRec const&)
2  LANDR +0x1057a78           GrFragmentProcessors::Make(SkShader const*, GrFPArgs const&, SkMatrix const&)
3  LANDR +0x107cc54           skpaint_to_grpaint_impl(skgpu::ganesh::SurfaceDrawContext*, SkPaint const&, SkMatrix const&, std::__1::optional<std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor>>>, SkBlender*, GrPaint*)
4  LANDR +0x107cb3c           SkPaintToGrPaint(skgpu::ganesh::SurfaceDrawContext*, SkPaint const&, SkMatrix const&, GrPaint*)
5  LANDR +0x103058c           skgpu::ganesh::Device::drawRect(SkRect const&, SkPaint const&)
6  LANDR +0xf65464            SkCanvas::onDrawRect(SkRect const&, SkPaint const&)
7  LANDR +0xf64674            SkCanvas::drawRect(SkRect const&, SkPaint const&)
8  LANDR +0xfe9ed4            SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
9  LANDR +0xf68168            SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
10 LANDR +0xe70900            SkCanvas::drawPicture(SkPicture const*) (SkCanvas.h:2041:15)
11 LANDR +0xe70900            SkCanvas::drawPicture(sk_sp<SkPicture> const&) (SkCanvas.h:2053:15)
12 LANDR +0xe70900            RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)::operator()(SkCanvas*) const (RNSkPictureView.h:70:17)
13 LANDR +0xe70900            decltype(std::declval<RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)&>()(std::declval<SkCanvas*>())) std::__1::__invoke[abi:ne190102]<RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)&, SkCanvas*>(RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)&, SkCanvas*&&) (invoke.h:149:25)
14 LANDR +0xe70900            void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne190102]<RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)&, SkCanvas*>(RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)&, SkCanvas*&&) (invoke.h:224:5)
15 LANDR +0xe6c01c            std::__1::__function::__value_func<void (SkCanvas*)>::operator()[abi:ne190102](SkCanvas*&&) const (function.h:430:12)
16 LANDR +0xe6c01c            std::__1::function<void (SkCanvas*)>::operator()(SkCanvas*) const (function.h:989:10)
17 LANDR +0xe6c01c            RNSkMetalCanvasProvider::renderToCanvas(std::__1::function<void (SkCanvas*)> const&) (RNSkMetalCanvasProvider.mm:86:5)
18 LANDR +0xe70754            RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>) (RNSkPictureView.h:63:28)
19 LANDR +0xe70690            RNSkia::RNSkPictureRenderer::renderImmediate(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>) (RNSkPictureView.h:51:5)
20 LANDR +0xddcc08            RNSkia::RNSkView::requestRedraw()::'lambda'()::operator()() const (RNSkView.h:162:36)
21 libdispatch.dylib +0x1ad8  __dispatch_call_block_and_release
22 libdispatch.dylib +0x1b7e8 __dispatch_client_callout
23 libdispatch.dylib +0x38b20 __dispatch_main_queue_drain.cold.5
24 libdispatch.dylib +0x10ec4 __dispatch_main_queue_drain
25 libdispatch.dylib +0x10e00 __dispatch_main_queue_callback_4CF
26 CoreFoundation +0x6a2c4    ___CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
27 CoreFoundation +0x1db38    ___CFRunLoopRun
28 CoreFoundation +0x1ca68    __CFRunLoopRunSpecificWithOptions
29 GraphicsServices +0x1494   _GSEventRunModal
30 UIKitCore +0x9dba0         -[UIApplication _run]
31 UIKitCore +0x46a74         _UIApplicationMain
32 LANDR +0x590c              main (AppDelegate.swift:13:14)
33 dyld +0x4e24               start

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions