Fabric: Change naming scheme of ShadowNodeFragment placeholders (#23437)

Summary:
This pull request implements some suggestions made in #23414, namely:

* Rename `ShadowNodeFragment::nullSharedProps()` (and family) to `ShadowNodeFragment::propsPlaceholder()`;
* Introduce similar functions for the rest of members (tag and rootTag);

Later pull requests to remove designated initializers from Fabric (for MSVC support) will use these

I'd like to do the rename of `rootTag` to `surfaceId` as well, but would make sense to do in a separate diff as that would result in a great deal of changes.

[General] [Changed] - Changed naming scheme of `ShadowNodeFragment` placeholders, and added placeholders for remaining members
Pull Request resolved: https://github.com/facebook/react-native/pull/23437

Reviewed By: mdvacca

Differential Revision: D14072007

Pulled By: shergin

fbshipit-source-id: d5bb10a82c16d45955f417a49b503f215c4bc521
This commit is contained in:
empyrical
2019-02-13 22:03:01 -08:00
committed by Facebook Github Bot
parent 7c9805ce16
commit 1ec9325bae
3 changed files with 23 additions and 13 deletions
@@ -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;
}
@@ -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
+1 -1
View File
@@ -47,7 +47,7 @@ SharedShadowNode UIManager::cloneNode(
{
.props = rawProps ? componentDescriptor.cloneProps(
shadowNode->getProps(), *rawProps)
: ShadowNodeFragment::nullSharedProps(),
: ShadowNodeFragment::propsPlaceholder(),
.children = children,
});