diff --git a/ReactCommon/fabric/core/shadownode/ShadowNodeFragment.cpp b/ReactCommon/fabric/core/shadownode/ShadowNodeFragment.cpp index 494b9e62946..9ebd9006fac 100644 --- a/ReactCommon/fabric/core/shadownode/ShadowNodeFragment.cpp +++ b/ReactCommon/fabric/core/shadownode/ShadowNodeFragment.cpp @@ -10,22 +10,30 @@ namespace facebook { namespace react { -SharedProps &ShadowNodeFragment::nullSharedProps() { +Tag ShadowNodeFragment::tagPlaceholder() { + return 0; +} + +Tag ShadowNodeFragment::surfaceIdPlaceholder() { + return 0; +} + +SharedProps &ShadowNodeFragment::propsPlaceholder() { static auto &instance = *new SharedProps(); return instance; } -SharedEventEmitter &ShadowNodeFragment::nullSharedEventEmitter() { +SharedEventEmitter &ShadowNodeFragment::eventEmitterPlaceholder() { static auto &instance = *new SharedEventEmitter(); return instance; } -SharedShadowNodeSharedList &ShadowNodeFragment::nullSharedChildren() { +SharedShadowNodeSharedList &ShadowNodeFragment::childrenPlaceholder() { static auto &instance = *new SharedShadowNodeSharedList(); return instance; } -SharedLocalData &ShadowNodeFragment::nullLocalData() { +SharedLocalData &ShadowNodeFragment::localDataPlaceholder() { static auto &instance = *new SharedLocalData(); return instance; } diff --git a/ReactCommon/fabric/core/shadownode/ShadowNodeFragment.h b/ReactCommon/fabric/core/shadownode/ShadowNodeFragment.h index 8dabd15677f..9db4cd45c2b 100644 --- a/ReactCommon/fabric/core/shadownode/ShadowNodeFragment.h +++ b/ReactCommon/fabric/core/shadownode/ShadowNodeFragment.h @@ -26,15 +26,17 @@ namespace react { struct ShadowNodeFragment { Tag tag = 0; Tag rootTag = 0; - const SharedProps &props = nullSharedProps(); - const SharedEventEmitter &eventEmitter = nullSharedEventEmitter(); - const SharedShadowNodeSharedList &children = nullSharedChildren(); - const SharedLocalData &localData = nullLocalData(); + const SharedProps &props = propsPlaceholder(); + const SharedEventEmitter &eventEmitter = eventEmitterPlaceholder(); + const SharedShadowNodeSharedList &children = childrenPlaceholder(); + const SharedLocalData &localData = localDataPlaceholder(); - static SharedProps &nullSharedProps(); - static SharedEventEmitter &nullSharedEventEmitter(); - static SharedShadowNodeSharedList &nullSharedChildren(); - static SharedLocalData &nullLocalData(); + static Tag tagPlaceholder(); + static Tag surfaceIdPlaceholder(); + static SharedProps &propsPlaceholder(); + static SharedEventEmitter &eventEmitterPlaceholder(); + static SharedShadowNodeSharedList &childrenPlaceholder(); + static SharedLocalData &localDataPlaceholder(); }; } // namespace react diff --git a/ReactCommon/fabric/uimanager/UIManager.cpp b/ReactCommon/fabric/uimanager/UIManager.cpp index 082b0b06a8e..3961afcefa4 100644 --- a/ReactCommon/fabric/uimanager/UIManager.cpp +++ b/ReactCommon/fabric/uimanager/UIManager.cpp @@ -47,7 +47,7 @@ SharedShadowNode UIManager::cloneNode( { .props = rawProps ? componentDescriptor.cloneProps( shadowNode->getProps(), *rawProps) - : ShadowNodeFragment::nullSharedProps(), + : ShadowNodeFragment::propsPlaceholder(), .children = children, });