mirror of
https://github.com/status-im/react-native.git
synced 2025-01-28 10:14:49 +00:00
3770d4df45
Summary: @public To avoid unnecessary copying of `shared_ptr`s inside ShadowNodeFragment, now we store them as `const &` references. Reviewed By: mdvacca Differential Revision: D8988388 fbshipit-source-id: 0b3582e57ce7577b8fa819392bf33f34e1a60b59
43 lines
1.2 KiB
C++
43 lines
1.2 KiB
C++
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <fabric/core/LocalData.h>
|
|
#include <fabric/core/Props.h>
|
|
#include <fabric/core/ReactPrimitives.h>
|
|
#include <fabric/core/ShadowNode.h>
|
|
#include <fabric/events/EventEmitter.h>
|
|
|
|
namespace facebook {
|
|
namespace react {
|
|
|
|
/*
|
|
* An object which supposed to be used as a parameter specifying a shape
|
|
* of created or cloned ShadowNode.
|
|
* Note: Most of the fields are `const &` references (essentially just raw
|
|
* pointers) which means that the Fragment does not copy/store them or
|
|
* retain ownership of them.
|
|
*/
|
|
struct ShadowNodeFragment {
|
|
Tag tag = 0;
|
|
Tag rootTag = 0;
|
|
const SharedProps &props = nullSharedProps();
|
|
const SharedEventEmitter &eventEmitter = nullSharedEventEmitter();
|
|
const SharedShadowNodeSharedList &children = nullSharedChildren();
|
|
const SharedLocalData &localData = nullLocalData();
|
|
|
|
private:
|
|
static SharedProps &nullSharedProps();
|
|
static SharedEventEmitter &nullSharedEventEmitter();
|
|
static SharedShadowNodeSharedList &nullSharedChildren();
|
|
static SharedLocalData &nullLocalData();
|
|
};
|
|
|
|
} // namespace react
|
|
} // namespace facebook
|