mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Immediately destroy EventEmitterWrapper on update instead of waiting for GC
Summary: Immediately destroy EventEmitterWrapper on update instead of waiting for Java GC. This can resolve JSI::~Pointer deallocation crashes by clearing out EventEmitter and therefore EventTarget sooner, before RN teardown. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D29415386 fbshipit-source-id: 05517bfd9e2cc2bd1b8c58d4f84c84f6f547268a
This commit is contained in:
committed by
Facebook GitHub Bot
parent
afafbf8ec4
commit
41ecccefcf
+6
@@ -805,7 +805,13 @@ public class SurfaceMountingManager {
|
||||
viewState = new ViewState(reactTag, null, null);
|
||||
mTagToViewState.put(reactTag, viewState);
|
||||
}
|
||||
EventEmitterWrapper previousEventEmitterWrapper = viewState.mEventEmitter;
|
||||
viewState.mEventEmitter = eventEmitter;
|
||||
|
||||
// Immediately destroy native side of wrapper, instead of waiting for Java GC.
|
||||
if (previousEventEmitterWrapper != eventEmitter && previousEventEmitterWrapper != null) {
|
||||
previousEventEmitterWrapper.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
@UiThread
|
||||
|
||||
Reference in New Issue
Block a user