Skip to content

Commit 0411c43

Browse files
yungstersfacebook-github-bot
authored andcommitted
RN: Patch enableEagerAlternateStateNodeCleanup into Renderers (OSS) (#51856)
Summary: Pull Request resolved: #51856 Enables the `enableEagerAlternateStateNodeCleanup` feature flag in the open source React Native renderers that are currently targeting React 19.1, by manually patching them in the React Native repository. This feature flag has been found to significantly improve memory management of parent alternate fibers in persistent modes (i.e. Fabric), and we want this to be available to open source users of React Native before the next scheduled public version release of React. For more details about the fix, see: react/react#33161 Changelog: [General][Changed] - Reduces memory usage, by improving memory management of parent alternate fibers. (Previously, a parent fiber might retain memory associated with shadow nodes from a previous commit.) Reviewed By: rickhanlonii Differential Revision: D76073900 fbshipit-source-id: 6779ea0862d4a1e25354b12ef3d1363dc12d26cc
1 parent e0797d0 commit 0411c43

3 files changed

Lines changed: 9 additions & 3 deletions

File tree

packages/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<d944291b21bfca6afd58b1fd5a118042>>
10+
* @generated SignedSource<<6b3694149dd8856f0c741d3d94e05646>>
1111
*
1212
* This file was sync'd from the facebook/react repository.
1313
*/
@@ -10561,6 +10561,8 @@ __DEV__ &&
1056110561
(offscreenSubtreeWasHidden ||
1056210562
null === current ||
1056310563
safelyDetachRef(current, current.return));
10564+
null !== finishedWork.alternate &&
10565+
(finishedWork.alternate.stateNode = finishedWork.stateNode);
1056410566
break;
1056510567
case 6:
1056610568
recursivelyTraverseMutationEffects(root, finishedWork);

packages/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<8c6274bec0d166bb311325a3c6c468b5>>
10+
* @generated SignedSource<<7430b56dac3186eca669ae53bbf1f23d>>
1111
*
1212
* This file was sync'd from the facebook/react repository.
1313
*/
@@ -8075,6 +8075,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) {
80758075
(offscreenSubtreeWasHidden ||
80768076
null === current ||
80778077
safelyDetachRef(current, current.return));
8078+
null !== finishedWork.alternate &&
8079+
(finishedWork.alternate.stateNode = finishedWork.stateNode);
80788080
break;
80798081
case 6:
80808082
recursivelyTraverseMutationEffects(root, finishedWork);

packages/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<49b14f3fcc953f4ddb02c1ef3f6e8c4e>>
10+
* @generated SignedSource<<cf19390911979c415bb5e95c5270fba6>>
1111
*
1212
* This file was sync'd from the facebook/react repository.
1313
*/
@@ -8530,6 +8530,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) {
85308530
(offscreenSubtreeWasHidden ||
85318531
null === current ||
85328532
safelyDetachRef(current, current.return));
8533+
null !== finishedWork.alternate &&
8534+
(finishedWork.alternate.stateNode = finishedWork.stateNode);
85338535
break;
85348536
case 6:
85358537
recursivelyTraverseMutationEffects(root, finishedWork);

0 commit comments

Comments
 (0)