From b705eafd224037b64bffc7dab51e03edeb65b310 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Tue, 15 Sep 2020 12:33:00 -0700 Subject: [PATCH] Fix retain cycle in RCTFabricSurface Summary: Changelog: [internal] Fix retain cycle caused by chain: `RCTSurfaceTouchHandler` -> `RCTSurfaceTouchHandler._rootComponentView` -> `RCTSurfaceTouchHandler` `RCTSurfaceTouchHandler._rootComponentView` calls `addGestureRecognizer` with `RCTSurfaceTouchHandler` as a parameter which, according to documentation, strongly holds onto gesture recogniser. https://www.internalfb.com/intern/diffusion/FBS/browsefile/master/xplat/js/react-native-github/React/Fabric/RCTSurfaceTouchHandler.mm?lines=189 For details about `addGestureRecognizer`, refer to https://developer.apple.com/documentation/appkit/nsview/1483749-addgesturerecognizer?language=objc# Reviewed By: shergin Differential Revision: D23704441 fbshipit-source-id: b1ab0feff552eaf10c1c71a931690c5258ce87cf --- React/Fabric/Surface/RCTFabricSurface.mm | 1 + 1 file changed, 1 insertion(+) diff --git a/React/Fabric/Surface/RCTFabricSurface.mm b/React/Fabric/Surface/RCTFabricSurface.mm index f8ea1c39faeea4..9cd25cd8318dad 100644 --- a/React/Fabric/Surface/RCTFabricSurface.mm +++ b/React/Fabric/Surface/RCTFabricSurface.mm @@ -83,6 +83,7 @@ - (BOOL)stop } [_surfacePresenter unregisterSurface:self]; + [_touchHandler detachFromView:_view]; return YES; }