Skip to content

Commit d8f9b3f

Browse files
zeyapmeta-codesync[bot]
authored andcommitted
make sure to only call onRender when NativeAnimatedNodesManagerProvider is not destroyed (#54481)
Summary: Pull Request resolved: #54481 ## Changelog: [iOS] [Fixed] - make sure to only call onRender when NativeAnimatedNodesManagerProvider is not destroyed Reviewed By: rozele Differential Revision: D86680109 fbshipit-source-id: 91b713b03d4dc7d1c16b444a89c136c8eed299f8
1 parent a4e6898 commit d8f9b3f

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

packages/react-native/ReactApple/RCTAnimatedModuleProvider/RCTAnimatedModuleProvider.mm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ @implementation RCTAnimatedModuleProvider {
2424
CADisplayLink *_displayLink;
2525
#endif
2626
std::function<void()> _onRender;
27+
28+
std::weak_ptr<facebook::react::NativeAnimatedNodesManagerProvider> _nativeAnimatedNodesManagerProvider;
2729
}
2830

2931
- (void)dealloc
@@ -48,7 +50,7 @@ - (void)dealloc
4850

4951
- (void)_onDisplayLinkTick
5052
{
51-
if (_displayLink != nullptr && _onRender != nullptr) {
53+
if (_nativeAnimatedNodesManagerProvider.lock() != nullptr && _displayLink != nullptr && _onRender != nullptr) {
5254
_onRender();
5355
}
5456
}
@@ -110,6 +112,7 @@ - (void)_onDisplayLinkTick
110112
stop_render();
111113
}
112114
});
115+
_nativeAnimatedNodesManagerProvider = provider;
113116
return std::make_shared<facebook::react::AnimatedModule>(std::move(jsInvoker), std::move(provider));
114117
}
115118
}

0 commit comments

Comments
 (0)