From 2153184c7700efacb55c9f2f1c6525fda4e1e604 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Tue, 12 Sep 2023 06:55:37 -0700 Subject: [PATCH] Seal RootShadowNode just before it is promoted (#39355) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39355 changelog: [internal] We want to seal node just before it is promoted. Reviewed By: javache, NickGerleman Differential Revision: D49054011 fbshipit-source-id: 92550c13280c68bf66d505872d86d775cf115f5d --- .../ReactCommon/react/renderer/mounting/ShadowTree.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp b/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp index 7dbc9745174..4f189ff675f 100644 --- a/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp +++ b/packages/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp @@ -371,9 +371,6 @@ CommitStatus ShadowTree::tryCommit( telemetry.unsetAsThreadLocal(); telemetry.didLayout(affectedLayoutableNodes.size()); - // Seal the shadow node so it can no longer be mutated - newRootShadowNode->sealRecursive(); - { // Updating `currentRevision_` in unique manner if it hasn't changed. std::unique_lock lock(commitMutex_); @@ -409,6 +406,9 @@ CommitStatus ShadowTree::tryCommit( telemetry.didCommit(); telemetry.setRevisionNumber(static_cast(newRevisionNumber)); + // Seal the shadow node so it can no longer be mutated + newRootShadowNode->sealRecursive(); + newRevision = ShadowTreeRevision{ std::move(newRootShadowNode), newRevisionNumber, telemetry};