From 792acff149ba0a79027900a2d8544eb0a8e9a79f Mon Sep 17 00:00:00 2001 From: Joshua Gross Date: Mon, 7 Jun 2021 12:14:22 -0700 Subject: [PATCH] Clean up EventEmitterWrapper on surface deallocation Summary: clean up EventEmitterWrapper on surface deallocation. Will resolve T92179998. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D28938530 fbshipit-source-id: f718945f52a652a4b79a7a376f052035e4f41edb --- .../facebook/react/fabric/events/EventEmitterWrapper.java | 6 ++++++ .../react/fabric/mounting/SurfaceMountingManager.java | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java index 35c2b533586..9080f60d265 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java @@ -64,4 +64,10 @@ public class EventEmitterWrapper { NativeMap payload = params == null ? new WritableNativeMap() : (NativeMap) params; invokeUniqueEvent(eventName, payload, customCoalesceKey); } + + public void destroy() { + if (mHybridData != null) { + mHybridData.resetNative(); + } + } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java index e61f26a2dd6..b2f5af0968f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java @@ -251,6 +251,10 @@ public class SurfaceMountingManager { viewState.mStateWrapper.destroyState(); viewState.mStateWrapper = null; } + if (viewState.mEventEmitter != null) { + viewState.mEventEmitter.destroy(); + viewState.mEventEmitter = null; + } } Runnable runnable =