Deprecate YGNode::setConfig
Summary: We want to phase out usage of config pointers on nodes. Setting configs is no longer needed, as a config is unly used during construction. Here we deprecate the setter, as it is no longer working as it used to (e.g. changing `useWebDefaults` after a node is constructed). Reviewed By: SidharthGuglani Differential Revision: D15416474 fbshipit-source-id: a2cc06cad0c5148cecce056ece5f141b3defe9a9
This commit is contained in:
committed by
Facebook Github Bot
parent
b74c0d4766
commit
cea3865c74
@@ -30,3 +30,15 @@
|
|||||||
#define YG_ENUM_BEGIN(name) enum name
|
#define YG_ENUM_BEGIN(name) enum name
|
||||||
#define YG_ENUM_END(name) name
|
#define YG_ENUM_END(name) name
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#define YG_DEPRECATED __attribute__((deprecated))
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
#define YG_DEPRECATED __declspec(deprecated)
|
||||||
|
#elif __cplusplus >= 201402L
|
||||||
|
#if defined(__has_cpp_attribute)
|
||||||
|
#if __has_cpp_attribute(deprecated)
|
||||||
|
#define YG_DEPRECATED [[deprecated]]
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
@@ -11,6 +11,7 @@
|
|||||||
#include "YGConfig.h"
|
#include "YGConfig.h"
|
||||||
#include "YGLayout.h"
|
#include "YGLayout.h"
|
||||||
#include "YGStyle.h"
|
#include "YGStyle.h"
|
||||||
|
#include "YGMacros.h"
|
||||||
#include "Yoga-internal.h"
|
#include "Yoga-internal.h"
|
||||||
|
|
||||||
YGConfigRef YGConfigGetDefault();
|
YGConfigRef YGConfigGetDefault();
|
||||||
@@ -272,7 +273,7 @@ public:
|
|||||||
|
|
||||||
// TODO: rvalue override for setChildren
|
// TODO: rvalue override for setChildren
|
||||||
|
|
||||||
void setConfig(YGConfigRef config) { config_ = config; }
|
YG_DEPRECATED void setConfig(YGConfigRef config) { config_ = config; }
|
||||||
|
|
||||||
void setDirty(bool isDirty);
|
void setDirty(bool isDirty);
|
||||||
void setLayoutLastOwnerDirection(YGDirection direction);
|
void setLayoutLastOwnerDirection(YGDirection direction);
|
||||||
|
@@ -253,7 +253,13 @@ static YGConfigRef YGConfigClone(const YGConfig& oldConfig) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static YGNodeRef YGNodeDeepClone(YGNodeRef oldNode) {
|
static YGNodeRef YGNodeDeepClone(YGNodeRef oldNode) {
|
||||||
YGNodeRef node = YGNodeClone(oldNode);
|
auto config = YGConfigClone(*oldNode->getConfig());
|
||||||
|
auto node = new YGNode{*oldNode, config};
|
||||||
|
node->setOwner(nullptr);
|
||||||
|
#ifdef YG_ENABLE_EVENTS
|
||||||
|
Event::publish<Event::NodeAllocation>(node, {node->getConfig()});
|
||||||
|
#endif
|
||||||
|
|
||||||
YGVector vec = YGVector();
|
YGVector vec = YGVector();
|
||||||
vec.reserve(oldNode->getChildren().size());
|
vec.reserve(oldNode->getChildren().size());
|
||||||
YGNodeRef childNode = nullptr;
|
YGNodeRef childNode = nullptr;
|
||||||
@@ -264,10 +270,6 @@ static YGNodeRef YGNodeDeepClone(YGNodeRef oldNode) {
|
|||||||
}
|
}
|
||||||
node->setChildren(vec);
|
node->setChildren(vec);
|
||||||
|
|
||||||
if (oldNode->getConfig() != nullptr) {
|
|
||||||
node->setConfig(YGConfigClone(*(oldNode->getConfig())));
|
|
||||||
}
|
|
||||||
|
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user