Skip to content

Commit b6b0746

Browse files
yungstershannomargelo
authored andcommitted
RN: Patch enableEagerAlternateStateNodeCleanup into Renderers (OSS) (facebook#51856)
Summary: Pull Request resolved: facebook#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: facebook/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 78b2961 commit b6b0746

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

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<<e233b479345be01ec0cc3c6e337839a2>>
10+
* @generated SignedSource<<6b3694149dd8856f0c741d3d94e05646>>
1111
*
1212
* This file was sync'd from the facebook/react repository.
1313
*/
@@ -10483,6 +10483,8 @@ __DEV__ &&
1048310483
(offscreenSubtreeWasHidden ||
1048410484
null === current ||
1048510485
safelyDetachRef(current, current.return));
10486+
null !== finishedWork.alternate &&
10487+
(finishedWork.alternate.stateNode = finishedWork.stateNode);
1048610488
break;
1048710489
case 6:
1048810490
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<<558b9dfa7f6550519be8c208c6bc0eef>>
10+
* @generated SignedSource<<7430b56dac3186eca669ae53bbf1f23d>>
1111
*
1212
* This file was sync'd from the facebook/react repository.
1313
*/
@@ -8005,6 +8005,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) {
80058005
(offscreenSubtreeWasHidden ||
80068006
null === current ||
80078007
safelyDetachRef(current, current.return));
8008+
null !== finishedWork.alternate &&
8009+
(finishedWork.alternate.stateNode = finishedWork.stateNode);
80088010
break;
80098011
case 6:
80108012
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<<e1a70389fe3fab3ec5907522444da7d2>>
10+
* @generated SignedSource<<cf19390911979c415bb5e95c5270fba6>>
1111
*
1212
* This file was sync'd from the facebook/react repository.
1313
*/
@@ -8488,6 +8488,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) {
84888488
(offscreenSubtreeWasHidden ||
84898489
null === current ||
84908490
safelyDetachRef(current, current.return));
8491+
null !== finishedWork.alternate &&
8492+
(finishedWork.alternate.stateNode = finishedWork.stateNode);
84918493
break;
84928494
case 6:
84938495
recursivelyTraverseMutationEffects(root, finishedWork);

0 commit comments

Comments
 (0)