From 215a0f0f21907322bf33e8a9a996d36dfa753706 Mon Sep 17 00:00:00 2001 From: Valentin Shergin Date: Mon, 26 Nov 2018 13:48:56 -0800 Subject: [PATCH] Fabric: Proper implementation -[RCTParagraphComponentView prepareForRecycle]` Summary: Over-retaining a LocalData object inside the View can cause a crash during tearing down JS VM because LocalData can indirectly retain EventEmitter objects which were not properly "disabled". Reviewed By: sahrens Differential Revision: D13196887 fbshipit-source-id: 001d9fadf775c89f750c84fe8da9b84d4636631c --- .../ComponentViews/Text/RCTParagraphComponentView.mm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm b/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm index ab49dd466fc..639fc73ba13 100644 --- a/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm +++ b/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm @@ -63,6 +63,12 @@ using namespace facebook::react; [self setNeedsDisplay]; } +- (void)prepareForRecycle +{ + [super prepareForRecycle]; + _paragraphLocalData.reset(); +} + - (void)drawRect:(CGRect)rect { if (!_paragraphLocalData) {