Skip to content

Commit

Permalink
Clear memoizedState on unmount of fiber to avoid memory leak (faceboo…
Browse files Browse the repository at this point in the history
…k#14218)

* Clear properties on unmount of fiber to ensure objects are not retained
  • Loading branch information
trueadm authored and n8schloss committed Jan 31, 2019
1 parent 1193c44 commit 8cae68c
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion packages/react-reconciler/src/ReactFiberCommitWork.js
Original file line number Diff line number Diff line change
Expand Up @@ -726,11 +726,20 @@ function detachFiber(current: Fiber) {
// get GC:ed but we don't know which for sure which parent is the current
// one so we'll settle for GC:ing the subtree of this child. This child
// itself will be GC:ed when the parent updates the next time.
// We do not null out the 'nextEffect' field as it causes tests to fail.
current.return = null;
current.child = null;
current.memoizedState = null;
current.updateQueue = null;
current.firstEffect = null;
current.lastEffect = null;
if (current.alternate) {
current.alternate.child = null;
current.alternate.return = null;
current.alternate.child = null;
current.alternate.memoizedState = null;
current.alternate.updateQueue = null;
current.alternate.firstEffect = null;
current.alternate.lastEffect = null;
}
}

Expand Down

0 comments on commit 8cae68c

Please sign in to comment.