Skip to content

Commit 3ff671c

Browse files
sammy-SCfacebook-github-bot
authored andcommitted
Do not retain paper view inside legacy interop after it has been recycled
Summary: Changelog: [Internal] Paper views are not designed to be recycled, that's why a new view is created each time legacy interop layer is used. However paper view was not deallocated immediately after it was used, it was still being strongly referenced by `self.contentView`. This doesn't cause an immediate issue because eventually when legacy interop layer does get reused, it will create a new paper view and replace the old one inside `self.contentView`, triggering deallocation of the old one. But we were retaining the paper view beyond what was necessary. Reviewed By: mdvacca Differential Revision: D22066022 fbshipit-source-id: 17c3b81468f50ebcc05f1a7cdf4d4b9b00965fc3
1 parent 56689e9 commit 3ff671c

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ - (void)prepareForRecycle
8787
[_viewsToBeMounted removeAllObjects];
8888
[_viewsToBeUnmounted removeAllObjects];
8989
_state.reset();
90+
self.contentView = nil;
9091
[super prepareForRecycle];
9192
}
9293

0 commit comments

Comments
 (0)