From 13a0556aaa3976245ec065b0da68ef865bd03b70 Mon Sep 17 00:00:00 2001 From: Pieter De Baets Date: Tue, 12 Jul 2022 04:37:32 -0700 Subject: [PATCH] Remove deprecated ShadowNode type aliases Summary: Fix todo and inconsistency across codebase. It's better to have just one way to refer to these types. Changelog: [Internal] Reviewed By: philIip Differential Revision: D37653146 fbshipit-source-id: e82f09caa6cd6eec5512b78f413708d9c04a7a83 --- .../animations/tests/LayoutAnimationTest.cpp | 4 +- .../ComponentDescriptorRegistry.cpp | 2 +- .../react/renderer/core/ShadowNode.cpp | 12 +- ReactCommon/react/renderer/core/ShadowNode.h | 27 +- .../core/tests/ComponentDescriptorTest.cpp | 12 +- .../renderer/core/tests/ShadowNodeTest.cpp | 8 +- .../react/renderer/mounting/ShadowTree.cpp | 4 +- .../renderer/mounting/tests/MountingTest.cpp | 248 +++++++++--------- .../tests/ShadowTreeLifeCycleTest.cpp | 8 +- .../react/renderer/scheduler/Scheduler.cpp | 4 +- .../templateprocessor/UITemplateProcessor.cpp | 12 +- .../templateprocessor/UITemplateProcessor.h | 2 +- .../react/renderer/uimanager/UIManager.cpp | 8 +- .../react/renderer/uimanager/UIManager.h | 4 +- .../renderer/uimanager/UIManagerBinding.cpp | 4 +- .../react/renderer/uimanager/primitives.h | 14 +- .../react/test_utils/shadowTreeGeneration.h | 2 +- 17 files changed, 188 insertions(+), 187 deletions(-) diff --git a/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp b/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp index 3c3178cb12..ea6a5e600a 100644 --- a/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +++ b/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp @@ -120,8 +120,8 @@ static void testShadowNodeTreeLifeCycleLayoutAnimations( auto currentRootNode = std::static_pointer_cast( emptyRootNode->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{singleRootChildNode})})); + std::make_shared( + ShadowNode::ListOfShared{singleRootChildNode})})); // Building an initial view hierarchy. auto viewTree = buildStubViewTreeWithoutUsingDifferentiator(*emptyRootNode); diff --git a/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp b/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp index 408fb0a0d3..42fe6e0eff 100644 --- a/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +++ b/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp @@ -126,7 +126,7 @@ bool ComponentDescriptorRegistry::hasComponentDescriptorAt( return true; } -SharedShadowNode ComponentDescriptorRegistry::createNode( +ShadowNode::Shared ComponentDescriptorRegistry::createNode( Tag tag, std::string const &viewName, SurfaceId surfaceId, diff --git a/ReactCommon/react/renderer/core/ShadowNode.cpp b/ReactCommon/react/renderer/core/ShadowNode.cpp index f0b96309fe..9aa6e0179f 100644 --- a/ReactCommon/react/renderer/core/ShadowNode.cpp +++ b/ReactCommon/react/renderer/core/ShadowNode.cpp @@ -22,9 +22,9 @@ namespace facebook { namespace react { -SharedShadowNodeSharedList ShadowNode::emptySharedShadowNodeSharedList() { +ShadowNode::SharedListOfShared ShadowNode::emptySharedShadowNodeSharedList() { static const auto emptySharedShadowNodeSharedList = - std::make_shared(); + std::make_shared(); return emptySharedShadowNodeSharedList; } @@ -131,7 +131,7 @@ ComponentHandle ShadowNode::getComponentHandle() const { return family_->getComponentHandle(); } -const SharedShadowNodeList &ShadowNode::getChildren() const { +const ShadowNode::ListOfShared &ShadowNode::getChildren() const { return *children_; } @@ -192,7 +192,7 @@ void ShadowNode::appendChild(const ShadowNode::Shared &child) { cloneChildrenIfShared(); auto nonConstChildren = - std::const_pointer_cast(children_); + std::const_pointer_cast(children_); nonConstChildren->push_back(child); child->family_->setParent(family_); @@ -237,7 +237,7 @@ void ShadowNode::cloneChildrenIfShared() { } traits_.unset(ShadowNodeTraits::Trait::ChildrenAreShared); - children_ = std::make_shared(*children_); + children_ = std::make_shared(*children_); } void ShadowNode::setMounted(bool mounted) const { @@ -285,7 +285,7 @@ ShadowNode::Unshared ShadowNode::cloneTree( childNode = parentNode.clone({ ShadowNodeFragment::propsPlaceholder(), - std::make_shared(children), + std::make_shared(children), }); } diff --git a/ReactCommon/react/renderer/core/ShadowNode.h b/ReactCommon/react/renderer/core/ShadowNode.h index eb60957c61..b7963ce22c 100644 --- a/ReactCommon/react/renderer/core/ShadowNode.h +++ b/ReactCommon/react/renderer/core/ShadowNode.h @@ -28,15 +28,6 @@ static constexpr const int kShadowNodeChildrenSmallVectorSize = 8; class ComponentDescriptor; struct ShadowNodeFragment; -class ShadowNode; - -// Deprecated: Use ShadowNode::Shared instead -using SharedShadowNode = std::shared_ptr; -using WeakShadowNode = std::weak_ptr; -using SharedShadowNodeList = - butter::small_vector; -using SharedShadowNodeSharedList = std::shared_ptr; -using SharedShadowNodeUnsharedList = std::shared_ptr; class ShadowNode : public Sealable, public DebugStringConvertible { public: @@ -57,7 +48,7 @@ class ShadowNode : public Sealable, public DebugStringConvertible { int /* childIndex */>, 64>; - static SharedShadowNodeSharedList emptySharedShadowNodeSharedList(); + static SharedListOfShared emptySharedShadowNodeSharedList(); /* * Returns `true` if nodes belong to the same family (they were cloned one @@ -103,7 +94,7 @@ class ShadowNode : public Sealable, public DebugStringConvertible { /* * Clones the shadow node using stored `cloneFunction`. */ - ShadowNode::Unshared clone(const ShadowNodeFragment &fragment) const; + Unshared clone(const ShadowNodeFragment &fragment) const; /* * Clones the node (and partially the tree starting from the node) by @@ -112,10 +103,10 @@ class ShadowNode : public Sealable, public DebugStringConvertible { * * Returns `nullptr` if the operation cannot be performed successfully. */ - ShadowNode::Unshared cloneTree( + Unshared cloneTree( ShadowNodeFamily const &shadowNodeFamily, - std::function const - &callback) const; + std::function const &callback) + const; #pragma mark - Getters @@ -128,7 +119,7 @@ class ShadowNode : public Sealable, public DebugStringConvertible { ShadowNodeTraits getTraits() const; SharedProps const &getProps() const; - SharedShadowNodeList const &getChildren() const; + ListOfShared const &getChildren() const; SharedEventEmitter const &getEventEmitter() const; Tag getTag() const; SurfaceId getSurfaceId() const; @@ -165,10 +156,10 @@ class ShadowNode : public Sealable, public DebugStringConvertible { #pragma mark - Mutating Methods - void appendChild(ShadowNode::Shared const &child); + void appendChild(Shared const &child); void replaceChild( ShadowNode const &oldChild, - ShadowNode::Shared const &newChild, + Shared const &newChild, int suggestedIndex = -1); /* @@ -196,7 +187,7 @@ class ShadowNode : public Sealable, public DebugStringConvertible { protected: SharedProps props_; - SharedShadowNodeSharedList children_; + SharedListOfShared children_; State::Shared state_; int orderIndex_; diff --git a/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp b/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp index 6340f2ba31..a10b608b0d 100644 --- a/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +++ b/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp @@ -37,7 +37,7 @@ TEST(ComponentDescriptorTest, createShadowNode) { }, nullptr); - SharedShadowNode node = descriptor->createShadowNode( + ShadowNode::Shared node = descriptor->createShadowNode( ShadowNodeFragment{ /* .props = */ props, }, @@ -69,12 +69,12 @@ TEST(ComponentDescriptorTest, cloneShadowNode) { /* .eventEmitter = */ nullptr, }, nullptr); - SharedShadowNode node = descriptor->createShadowNode( + ShadowNode::Shared node = descriptor->createShadowNode( ShadowNodeFragment{ /* .props = */ props, }, family); - SharedShadowNode cloned = descriptor->cloneShadowNode(*node, {}); + ShadowNode::Shared cloned = descriptor->cloneShadowNode(*node, {}); EXPECT_STREQ(cloned->getComponentName(), "Test"); EXPECT_EQ(cloned->getTag(), 9); @@ -104,7 +104,7 @@ TEST(ComponentDescriptorTest, appendChild) { /* .eventEmitter = */ nullptr, }, nullptr); - SharedShadowNode node1 = descriptor->createShadowNode( + ShadowNode::Shared node1 = descriptor->createShadowNode( ShadowNodeFragment{ /* .props = */ props, }, @@ -116,7 +116,7 @@ TEST(ComponentDescriptorTest, appendChild) { /* .eventEmitter = */ nullptr, }, nullptr); - SharedShadowNode node2 = descriptor->createShadowNode( + ShadowNode::Shared node2 = descriptor->createShadowNode( ShadowNodeFragment{ /* .props = */ props, }, @@ -128,7 +128,7 @@ TEST(ComponentDescriptorTest, appendChild) { /* .eventEmitter = */ nullptr, }, nullptr); - SharedShadowNode node3 = descriptor->createShadowNode( + ShadowNode::Shared node3 = descriptor->createShadowNode( ShadowNodeFragment{ /* .props = */ props, }, diff --git a/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp b/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp index f876611d53..7a403ede52 100644 --- a/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +++ b/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp @@ -85,8 +85,8 @@ class ShadowNodeTest : public ::testing::Test { familyABB, traits); - auto nodeABChildren = std::make_shared( - SharedShadowNodeList{nodeABA_, nodeABB_}); + auto nodeABChildren = std::make_shared( + ShadowNode::ListOfShared{nodeABA_, nodeABB_}); auto familyAB = std::make_shared( ShadowNodeFamilyFragment{ @@ -120,8 +120,8 @@ class ShadowNodeTest : public ::testing::Test { familyAC, traits); - auto nodeAChildren = std::make_shared( - SharedShadowNodeList{nodeAA_, nodeAB_, nodeAC_}); + auto nodeAChildren = std::make_shared( + ShadowNode::ListOfShared{nodeAA_, nodeAB_, nodeAC_}); auto familyA = std::make_shared( ShadowNodeFamilyFragment{ diff --git a/ReactCommon/react/renderer/mounting/ShadowTree.cpp b/ReactCommon/react/renderer/mounting/ShadowTree.cpp index e17ab34bba..e68b88f852 100644 --- a/ReactCommon/react/renderer/mounting/ShadowTree.cpp +++ b/ReactCommon/react/renderer/mounting/ShadowTree.cpp @@ -161,8 +161,8 @@ static ShadowNode::Unshared progressState( } static void updateMountedFlag( - const SharedShadowNodeList &oldChildren, - const SharedShadowNodeList &newChildren) { + const ShadowNode::ListOfShared &oldChildren, + const ShadowNode::ListOfShared &newChildren) { // This is a simplified version of Diffing algorithm that only updates // `mounted` flag on `ShadowNode`s. The algorithm sets "mounted" flag before // "unmounted" to allow `ShadowNode` detect a situation where the node was diff --git a/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp b/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp index cb6868990c..5c98724a79 100644 --- a/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +++ b/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp @@ -50,7 +50,7 @@ static ShadowNode::Shared makeNode( return componentDescriptor.createShadowNode( ShadowNodeFragment{ - props, std::make_shared(children)}, + props, std::make_shared(children)}, componentDescriptor.createFamily({tag, SurfaceId(1), nullptr}, nullptr)); } @@ -111,32 +111,32 @@ TEST(MountingTest, testReorderingInstructionGeneration) { auto shadowNodeV1 = viewComponentDescriptor.createShadowNode( ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childB, childC, childD})}, + std::make_shared( + ShadowNode::ListOfShared{childB, childC, childD})}, family); auto shadowNodeV2 = shadowNodeV1->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childA, childB, childC, childD})}); + std::make_shared( + ShadowNode::ListOfShared{childA, childB, childC, childD})}); auto shadowNodeV3 = shadowNodeV2->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childB, childC, childD})}); + std::make_shared( + ShadowNode::ListOfShared{childB, childC, childD})}); auto shadowNodeV4 = shadowNodeV3->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childB, childD, childE})}); + std::make_shared( + ShadowNode::ListOfShared{childB, childD, childE})}); auto shadowNodeV5 = shadowNodeV4->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childB, childA, childE, childC})}); + std::make_shared( + ShadowNode::ListOfShared{childB, childA, childE, childC})}); auto shadowNodeV6 = shadowNodeV5->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared(SharedShadowNodeList{ + std::make_shared(ShadowNode::ListOfShared{ childB, childA, childD, childF, childE, childC})}); auto shadowNodeV7 = shadowNodeV6->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared(SharedShadowNodeList{ + std::make_shared(ShadowNode::ListOfShared{ childF, childE, childC, @@ -151,38 +151,38 @@ TEST(MountingTest, testReorderingInstructionGeneration) { auto rootNodeV1 = std::static_pointer_cast( emptyRootNode->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV1})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV1})})); auto rootNodeV2 = std::static_pointer_cast( rootNodeV1->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV2})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV2})})); auto rootNodeV3 = std::static_pointer_cast( rootNodeV2->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV3})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV3})})); auto rootNodeV4 = std::static_pointer_cast( rootNodeV3->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV4})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV4})})); auto rootNodeV5 = std::static_pointer_cast( rootNodeV4->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV5})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV5})})); auto rootNodeV6 = std::static_pointer_cast( rootNodeV5->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV6})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV6})})); auto rootNodeV7 = std::static_pointer_cast( rootNodeV6->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV7})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV7})})); // Layout std::vector affectedLayoutableNodesV1{}; @@ -419,159 +419,169 @@ TEST(MountingTest, testViewReparentingInstructionGeneration) { auto reparentedViewA = makeNode( viewComponentDescriptor, 1000, - SharedShadowNodeList{ + ShadowNode::ListOfShared{ childC->clone({}), childA->clone({}), childB->clone({})}); auto reparentedViewB = makeNode( viewComponentDescriptor, 2000, - SharedShadowNodeList{ + ShadowNode::ListOfShared{ childF->clone({}), childE->clone({}), childD->clone({})}); // Root -> G* -> H -> I -> J -> A* [nodes with * are _not_ flattened] auto shadowNodeV1 = viewComponentDescriptor.createShadowNode( ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childG->clone(ShadowNodeFragment{ + std::make_shared( + ShadowNode::ListOfShared{childG->clone(ShadowNodeFragment{ nonFlattenedDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childH->clone(ShadowNodeFragment{ + std::make_shared( + ShadowNode::ListOfShared{childH->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared< - SharedShadowNodeList>(SharedShadowNodeList{ - childI->clone(ShadowNodeFragment{ - generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{ - childJ->clone(ShadowNodeFragment{ - generateDefaultProps( - viewComponentDescriptor), - std::make_shared< - SharedShadowNodeList>( - SharedShadowNodeList{ - reparentedViewA->clone( - {})})})})})})})})})})}, + std::make_shared( + ShadowNode::ListOfShared{ + childI->clone(ShadowNodeFragment{ + generateDefaultProps( + viewComponentDescriptor), + std::make_shared< + ShadowNode::ListOfShared>( + ShadowNode::ListOfShared{ + childJ->clone(ShadowNodeFragment{ + generateDefaultProps( + viewComponentDescriptor), + std::make_shared< + ShadowNode::ListOfShared>( + ShadowNode::ListOfShared{ + reparentedViewA->clone( + {})})})})})})})})})})}, family); // Root -> G* -> H* -> I -> J -> A* [nodes with * are _not_ flattened] auto shadowNodeV2 = shadowNodeV1->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childG->clone(ShadowNodeFragment{ + std::make_shared( + ShadowNode::ListOfShared{childG->clone(ShadowNodeFragment{ nonFlattenedDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childH->clone(ShadowNodeFragment{ + std::make_shared( + ShadowNode::ListOfShared{childH->clone(ShadowNodeFragment{ nonFlattenedDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childI->clone(ShadowNodeFragment{ + std::make_shared< + ShadowNode::ListOfShared>(ShadowNode::ListOfShared{ + childI->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared< - SharedShadowNodeList>(SharedShadowNodeList{ - childJ->clone(ShadowNodeFragment{ - generateDefaultProps( - viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{ - reparentedViewA->clone( - {})})})})})})})})})})}); + std::make_shared( + ShadowNode::ListOfShared{ + childJ->clone(ShadowNodeFragment{ + generateDefaultProps( + viewComponentDescriptor), + std::make_shared< + ShadowNode::ListOfShared>( + ShadowNode::ListOfShared{ + reparentedViewA->clone( + {})})})})})})})})})})}); // Root -> G* -> H -> I -> J -> A* [nodes with * are _not_ flattened] auto shadowNodeV3 = shadowNodeV2->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childG->clone(ShadowNodeFragment{ + std::make_shared( + ShadowNode::ListOfShared{childG->clone(ShadowNodeFragment{ nonFlattenedDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childH->clone(ShadowNodeFragment{ + std::make_shared( + ShadowNode::ListOfShared{childH->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childI->clone(ShadowNodeFragment{ + std::make_shared< + ShadowNode::ListOfShared>(ShadowNode::ListOfShared{ + childI->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared< - SharedShadowNodeList>(SharedShadowNodeList{ - childJ->clone(ShadowNodeFragment{ - generateDefaultProps( - viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{ - reparentedViewA->clone( - {})})})})})})})})})})}); + std::make_shared( + ShadowNode::ListOfShared{ + childJ->clone(ShadowNodeFragment{ + generateDefaultProps( + viewComponentDescriptor), + std::make_shared< + ShadowNode::ListOfShared>( + ShadowNode::ListOfShared{ + reparentedViewA->clone( + {})})})})})})})})})})}); // The view is reparented 1 level down with a different sibling // Root -> G* -> H* -> I* -> J -> [B*, A*] [nodes with * are _not_ flattened] auto shadowNodeV4 = shadowNodeV3->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childG->clone(ShadowNodeFragment{ + std::make_shared( + ShadowNode::ListOfShared{childG->clone(ShadowNodeFragment{ nonFlattenedDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childH->clone(ShadowNodeFragment{ + std::make_shared( + ShadowNode::ListOfShared{childH->clone(ShadowNodeFragment{ nonFlattenedDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childI->clone(ShadowNodeFragment{ + std::make_shared< + ShadowNode::ListOfShared>(ShadowNode::ListOfShared{ + childI->clone(ShadowNodeFragment{ nonFlattenedDefaultProps(viewComponentDescriptor), - std::make_shared< - SharedShadowNodeList>(SharedShadowNodeList{ - childJ->clone(ShadowNodeFragment{ - generateDefaultProps( - viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{ - reparentedViewB->clone({}), - reparentedViewA->clone( - {})})})})})})})})})})}); + std::make_shared( + ShadowNode::ListOfShared{ + childJ->clone(ShadowNodeFragment{ + generateDefaultProps( + viewComponentDescriptor), + std::make_shared< + ShadowNode::ListOfShared>( + ShadowNode::ListOfShared{ + reparentedViewB->clone({}), + reparentedViewA->clone( + {})})})})})})})})})})}); // The view is reparented 1 level further down with its order with the sibling // swapped // Root -> G* -> H* -> I* -> J* -> [A*, B*] [nodes with * are _not_ flattened] auto shadowNodeV5 = shadowNodeV4->clone(ShadowNodeFragment{ generateDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childG->clone(ShadowNodeFragment{ + std::make_shared( + ShadowNode::ListOfShared{childG->clone(ShadowNodeFragment{ nonFlattenedDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childH->clone(ShadowNodeFragment{ + std::make_shared( + ShadowNode::ListOfShared{childH->clone(ShadowNodeFragment{ nonFlattenedDefaultProps(viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{childI->clone(ShadowNodeFragment{ + std::make_shared< + ShadowNode::ListOfShared>(ShadowNode::ListOfShared{ + childI->clone(ShadowNodeFragment{ nonFlattenedDefaultProps(viewComponentDescriptor), - std::make_shared< - SharedShadowNodeList>(SharedShadowNodeList{ - childJ->clone(ShadowNodeFragment{ - nonFlattenedDefaultProps( - viewComponentDescriptor), - std::make_shared( - SharedShadowNodeList{ - reparentedViewA->clone({}), - reparentedViewB->clone( - {})})})})})})})})})})}); + std::make_shared( + ShadowNode::ListOfShared{ + childJ->clone(ShadowNodeFragment{ + nonFlattenedDefaultProps( + viewComponentDescriptor), + std::make_shared< + ShadowNode::ListOfShared>( + ShadowNode::ListOfShared{ + reparentedViewA->clone({}), + reparentedViewB->clone( + {})})})})})})})})})})}); // Injecting a tree into the root node. auto rootNodeV1 = std::static_pointer_cast( emptyRootNode->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV1})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV1})})); auto rootNodeV2 = std::static_pointer_cast( rootNodeV1->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV2})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV2})})); auto rootNodeV3 = std::static_pointer_cast( rootNodeV2->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV3})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV3})})); auto rootNodeV4 = std::static_pointer_cast( rootNodeV3->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV4})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV4})})); auto rootNodeV5 = std::static_pointer_cast( rootNodeV4->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{shadowNodeV5})})); + std::make_shared( + ShadowNode::ListOfShared{shadowNodeV5})})); // Layout std::vector affectedLayoutableNodesV1{}; diff --git a/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp b/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp index fc913f666a..1afd71e2b7 100644 --- a/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +++ b/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp @@ -77,8 +77,8 @@ static void testShadowNodeTreeLifeCycle( auto currentRootNode = std::static_pointer_cast( emptyRootNode->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{singleRootChildNode})})); + std::make_shared( + ShadowNode::ListOfShared{singleRootChildNode})})); // Building an initial view hierarchy. auto viewTree = buildStubViewTreeWithoutUsingDifferentiator(*emptyRootNode); @@ -227,8 +227,8 @@ static void testShadowNodeTreeLifeCycleExtensiveFlatteningUnflattening( auto currentRootNode = std::static_pointer_cast( emptyRootNode->ShadowNode::clone(ShadowNodeFragment{ ShadowNodeFragment::propsPlaceholder(), - std::make_shared( - SharedShadowNodeList{singleRootChildNode})})); + std::make_shared( + ShadowNode::ListOfShared{singleRootChildNode})})); // Building an initial view hierarchy. auto viewTree = buildStubViewTreeWithoutUsingDifferentiator(*emptyRootNode); diff --git a/ReactCommon/react/renderer/scheduler/Scheduler.cpp b/ReactCommon/react/renderer/scheduler/Scheduler.cpp index 01cf24e7c1..53a7fe6bf3 100644 --- a/ReactCommon/react/renderer/scheduler/Scheduler.cpp +++ b/ReactCommon/react/renderer/scheduler/Scheduler.cpp @@ -264,8 +264,8 @@ void Scheduler::renderTemplateToSurface( ShadowNodeFragment{ /* .props = */ ShadowNodeFragment::propsPlaceholder(), /* .children = */ - std::make_shared( - SharedShadowNodeList{tree}), + std::make_shared( + ShadowNode::ListOfShared{tree}), }); }); }); diff --git a/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.cpp b/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.cpp index 94b2e35908..a198134b35 100644 --- a/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.cpp +++ b/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.cpp @@ -25,17 +25,17 @@ bool constexpr DEBUG_FLY = false; struct RBCContext { const Tag rootTag; - const std::vector &nodes; + const std::vector &nodes; const std::vector ®isters; const ComponentDescriptorRegistry &componentDescriptorRegistry; const NativeModuleRegistry &nativeModuleRegistry; }; // TODO: use RBCContext instead of all the separate arguments. -SharedShadowNode UITemplateProcessor::runCommand( +ShadowNode::Shared UITemplateProcessor::runCommand( const folly::dynamic &command, SurfaceId surfaceId, - std::vector &nodes, + std::vector &nodes, std::vector ®isters, const ComponentDescriptorRegistry &componentDescriptorRegistry, const NativeModuleRegistry &nativeModuleRegistry, @@ -100,7 +100,7 @@ SharedShadowNode UITemplateProcessor::runCommand( return nullptr; } -SharedShadowNode UITemplateProcessor::buildShadowTree( +ShadowNode::Shared UITemplateProcessor::buildShadowTree( const std::string &jsonStr, SurfaceId surfaceId, const folly::dynamic ¶ms, @@ -122,7 +122,7 @@ SharedShadowNode UITemplateProcessor::buildShadowTree( } auto parsed = folly::parseJson(content); auto commands = parsed["commands"]; - std::vector nodes(commands.size() * 2); + std::vector nodes(commands.size() * 2); std::vector registers(32); for (const auto &command : commands) { try { @@ -148,7 +148,7 @@ SharedShadowNode UITemplateProcessor::buildShadowTree( LOG(ERROR) << "react ui template missing returnRoot command :("; throw std::runtime_error( "Missing returnRoot command in template content:\n" + content); - return SharedShadowNode{}; + return ShadowNode::Shared{}; } } // namespace react diff --git a/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.h b/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.h index 22a88aab52..a95339e58b 100644 --- a/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.h +++ b/ReactCommon/react/renderer/templateprocessor/UITemplateProcessor.h @@ -56,7 +56,7 @@ class UITemplateProcessor { static ShadowNode::Shared runCommand( const folly::dynamic &command, Tag rootTag, - std::vector &nodes, + std::vector &nodes, std::vector ®isters, const ComponentDescriptorRegistry &componentDescriptorRegistry, const NativeModuleRegistry &nativeModuleRegistry, diff --git a/ReactCommon/react/renderer/uimanager/UIManager.cpp b/ReactCommon/react/renderer/uimanager/UIManager.cpp index 1e62eccc38..cd2d3267da 100644 --- a/ReactCommon/react/renderer/uimanager/UIManager.cpp +++ b/ReactCommon/react/renderer/uimanager/UIManager.cpp @@ -52,7 +52,7 @@ UIManager::~UIManager() { << ")."; } -SharedShadowNode UIManager::createNode( +ShadowNode::Shared UIManager::createNode( Tag tag, std::string const &name, SurfaceId surfaceId, @@ -100,9 +100,9 @@ SharedShadowNode UIManager::createNode( return shadowNode; } -SharedShadowNode UIManager::cloneNode( +ShadowNode::Shared UIManager::cloneNode( ShadowNode const &shadowNode, - SharedShadowNodeSharedList const &children, + ShadowNode::SharedListOfShared const &children, RawProps const *rawProps) const { SystraceSection s("UIManager::cloneNode"); @@ -138,7 +138,7 @@ void UIManager::appendChild( void UIManager::completeSurface( SurfaceId surfaceId, - SharedShadowNodeUnsharedList const &rootChildren, + ShadowNode::UnsharedListOfShared const &rootChildren, ShadowTree::CommitOptions commitOptions) const { SystraceSection s("UIManager::completeSurface"); diff --git a/ReactCommon/react/renderer/uimanager/UIManager.h b/ReactCommon/react/renderer/uimanager/UIManager.h index ab950a0c41..a30a594bec 100644 --- a/ReactCommon/react/renderer/uimanager/UIManager.h +++ b/ReactCommon/react/renderer/uimanager/UIManager.h @@ -120,7 +120,7 @@ class UIManager final : public ShadowTreeDelegate { ShadowNode::Shared cloneNode( ShadowNode const &shadowNode, - SharedShadowNodeSharedList const &children = nullptr, + ShadowNode::SharedListOfShared const &children = nullptr, RawProps const *rawProps = nullptr) const; void appendChild( @@ -129,7 +129,7 @@ class UIManager final : public ShadowTreeDelegate { void completeSurface( SurfaceId surfaceId, - SharedShadowNodeUnsharedList const &rootChildren, + ShadowNode::UnsharedListOfShared const &rootChildren, ShadowTree::CommitOptions commitOptions) const; void setIsJSResponder( diff --git a/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp b/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp index 0a7666c4e2..9393ba512f 100644 --- a/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +++ b/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp @@ -361,8 +361,8 @@ jsi::Value UIManagerBinding::get( jsi::Value const &thisValue, jsi::Value const *arguments, size_t count) noexcept -> jsi::Value { - auto shadowNodeList = - std::make_shared(SharedShadowNodeList({})); + auto shadowNodeList = std::make_shared( + ShadowNode::ListOfShared({})); return valueFromShadowNodeList(runtime, shadowNodeList); }); } diff --git a/ReactCommon/react/renderer/uimanager/primitives.h b/ReactCommon/react/renderer/uimanager/primitives.h index cc2f925a5f..a7e7f5f275 100644 --- a/ReactCommon/react/renderer/uimanager/primitives.h +++ b/ReactCommon/react/renderer/uimanager/primitives.h @@ -27,7 +27,7 @@ struct EventHandlerWrapper : public EventHandler { }; struct ShadowNodeWrapper : public jsi::HostObject { - ShadowNodeWrapper(SharedShadowNode shadowNode) + ShadowNodeWrapper(ShadowNode::Shared shadowNode) : shadowNode(std::move(shadowNode)) {} // The below method needs to be implemented out-of-line in order for the class @@ -39,7 +39,7 @@ struct ShadowNodeWrapper : public jsi::HostObject { }; struct ShadowNodeListWrapper : public jsi::HostObject { - ShadowNodeListWrapper(SharedShadowNodeUnsharedList shadowNodeList) + ShadowNodeListWrapper(ShadowNode::UnsharedListOfShared shadowNodeList) : shadowNodeList(shadowNodeList) {} // The below method needs to be implemented out-of-line in order for the class @@ -47,7 +47,7 @@ struct ShadowNodeListWrapper : public jsi::HostObject { // https://itanium-cxx-abi.github.io/cxx-abi/abi.html#vague-vtable) ~ShadowNodeListWrapper() override; - SharedShadowNodeUnsharedList shadowNodeList; + ShadowNode::UnsharedListOfShared shadowNodeList; }; inline static ShadowNode::Shared shadowNodeFromValue( @@ -64,12 +64,12 @@ inline static ShadowNode::Shared shadowNodeFromValue( inline static jsi::Value valueFromShadowNode( jsi::Runtime &runtime, - const ShadowNode::Shared &shadowNode) { + ShadowNode::Shared shadowNode) { return jsi::Object::createFromHostObject( - runtime, std::make_shared(shadowNode)); + runtime, std::make_shared(std::move(shadowNode))); } -inline static SharedShadowNodeUnsharedList shadowNodeListFromValue( +inline static ShadowNode::UnsharedListOfShared shadowNodeListFromValue( jsi::Runtime &runtime, jsi::Value const &value) { return value.getObject(runtime) @@ -107,7 +107,7 @@ inline static ShadowNode::UnsharedListOfWeak weakShadowNodeListFromValue( inline static jsi::Value valueFromShadowNodeList( jsi::Runtime &runtime, - const SharedShadowNodeUnsharedList &shadowNodeList) { + const ShadowNode::UnsharedListOfShared &shadowNodeList) { return jsi::Object::createFromHostObject( runtime, std::make_unique(shadowNodeList)); } diff --git a/ReactCommon/react/test_utils/shadowTreeGeneration.h b/ReactCommon/react/test_utils/shadowTreeGeneration.h index d4be32be58..63f037b9b4 100644 --- a/ReactCommon/react/test_utils/shadowTreeGeneration.h +++ b/ReactCommon/react/test_utils/shadowTreeGeneration.h @@ -308,7 +308,7 @@ static inline ShadowNode::Shared generateShadowNodeTree( return componentDescriptor.createShadowNode( ShadowNodeFragment{ generateDefaultProps(componentDescriptor), - std::make_shared(children)}, + std::make_shared(children)}, family); }