From ac783a8a1b92b59683af85dd87518acd9c582db4 Mon Sep 17 00:00:00 2001 From: Nick Lockwood Date: Thu, 10 Dec 2015 12:04:53 -0800 Subject: [PATCH] Fix retain cycle Summary: public This fixes the following circular reference: RCTComponentData -> _bridge -> RCTBatchedBridge -> _moduleDataByName -> __NSDictionaryI -> RCTModuleData -> _instance -> RCTUIManager -> _componentDataByName -> __NSDictionaryI -> RCTComponentData Reviewed By: javache Differential Revision: D2744742 fb-gh-sync-id: c282786f4dfb550185bc03d3e5e3d03048664c21 --- React/Views/RCTComponentData.h | 2 +- React/Views/RCTComponentData.m | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/React/Views/RCTComponentData.h b/React/Views/RCTComponentData.h index f7151c22b..c52af3647 100644 --- a/React/Views/RCTComponentData.h +++ b/React/Views/RCTComponentData.h @@ -21,7 +21,7 @@ @property (nonatomic, readonly) Class managerClass; @property (nonatomic, copy, readonly) NSString *name; -@property (nonatomic, strong, readonly) RCTViewManager *manager; +@property (nonatomic, weak, readonly) RCTViewManager *manager; - (instancetype)initWithManagerClass:(Class)managerClass bridge:(RCTBridge *)bridge NS_DESIGNATED_INITIALIZER; diff --git a/React/Views/RCTComponentData.m b/React/Views/RCTComponentData.m index 0f8287b72..42d7506ee 100644 --- a/React/Views/RCTComponentData.m +++ b/React/Views/RCTComponentData.m @@ -44,7 +44,7 @@ typedef void (^RCTPropBlock)(id view, id json); RCTShadowView *_defaultShadowView; NSMutableDictionary *_viewPropBlocks; NSMutableDictionary *_shadowPropBlocks; - RCTBridge *_bridge; + __weak RCTBridge *_bridge; } @synthesize manager = _manager;