c47759a9ae
Summary: Fixes potential retain cycles detected by an internal fb tool. ``` First: __NSDictionaryM -> RCTPropsAnimatedNode -> _parentNodes -> __NSDictionaryM -> RCTStyleAnimatedNode -> _childNodes -> __NSDictionaryM Second: RCTScrollView -> _eventDispatcher -> RCTEventDispatcher -> _observers -> __NSArrayM -> RCTNativeAnimatedModule -> _nodesManager -> RCTNativeAnimatedNodesManager -> _uiManager -> RCTUIManager -> _viewRegistry -> __NSDictionaryM -> RCTScrollView ``` First fix: Use weak map for parent and child nodes, strong refs are managed by RCTNativeAnimatedNodesManager Second fix: Make RCTEventDispatcher observers a weak array and make sure we don't keep strong refs to UIManager in RCTNativeAnimatedNodesManager and RCTPropsAnimatedNode. Tested that native animations still work in UIExplorer [IOS] [BUGFIX] [NativeAnimated] - Fix potential retain cycles in Animated iOS Closes https://github.com/facebook/react-native/pull/16506 Differential Revision: D6126400 Pulled By: shergin fbshipit-source-id: 1ac5083f8ab79a806305edc23ae4796ed428f78b |
||
---|---|---|
.. | ||
Drivers | ||
Nodes | ||
RCTAnimation.xcodeproj | ||
RCTAnimationUtils.h | ||
RCTAnimationUtils.m | ||
RCTNativeAnimatedModule.h | ||
RCTNativeAnimatedModule.m | ||
RCTNativeAnimatedNodesManager.h | ||
RCTNativeAnimatedNodesManager.m |