mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
653d8540c6
Summary: One of the operations we do in `Scheduler::stopSurface()` is committing an empty tree to free up `ShadowNode` objects and "disable" `EventEmitter`s associated with them. Before this change, we had a gap in time between a moment when we commit an empty tree and remove the tree from the registry. During this time gap, JavaScript (or native, actually) can commit another tree and mount another new state on the screen. To prevent this, we remove the tree from the registry first and only then commit an empty tree to a uniquely owned tree. Note that the deleted comment says that we actually have to have a tree in the registry for committing an empty tree, I don't think it's true now. Changelog: [Internal] Fabric-specific internal change. Reviewed By: sammy-SC Differential Revision: D23667882 fbshipit-source-id: 387052e9f3e78e7d4446f36baed50f9caa831133