C++ style enums 2/N: NodeType (#1383)

Summary:
X-link: https://github.com/facebook/react-native/pull/39450

Pull Request resolved: https://github.com/facebook/yoga/pull/1383

This converts usages of YGNodeType to NodeType

Reviewed By: rozele

Differential Revision: D49269117

fbshipit-source-id: 27318279fe555c28c605625a160d5be781b662b8
This commit is contained in:
Nick Gerleman
2023-09-14 23:06:34 -07:00
committed by Facebook GitHub Bot
parent 4cd45ac5d5
commit 9129a0af87
4 changed files with 11 additions and 10 deletions

View File

@@ -81,11 +81,11 @@ void YGNodeSetHasNewLayout(YGNodeRef node, bool hasNewLayout) {
} }
YGNodeType YGNodeGetNodeType(YGNodeConstRef node) { YGNodeType YGNodeGetNodeType(YGNodeConstRef node) {
return resolveRef(node)->getNodeType(); return unscopedEnum(resolveRef(node)->getNodeType());
} }
void YGNodeSetNodeType(YGNodeRef node, YGNodeType nodeType) { void YGNodeSetNodeType(YGNodeRef node, YGNodeType nodeType) {
return resolveRef(node)->setNodeType(nodeType); return resolveRef(node)->setNodeType(scopedEnum(nodeType));
} }
bool YGNodeIsDirty(YGNodeConstRef node) { bool YGNodeIsDirty(YGNodeConstRef node) {

View File

@@ -83,7 +83,7 @@ void roundLayoutResultsToPixelGrid(
if (pointScaleFactor != 0.0f) { if (pointScaleFactor != 0.0f) {
// If a node has a custom measure function we never want to round down its // If a node has a custom measure function we never want to round down its
// size as this could lead to unwanted text truncation. // size as this could lead to unwanted text truncation.
const bool textRounding = node->getNodeType() == YGNodeTypeText; const bool textRounding = node->getNodeType() == NodeType::Text;
node->setLayoutPosition( node->setLayoutPosition(
roundValueToPixelGrid(nodeLeft, pointScaleFactor, false, textRounding), roundValueToPixelGrid(nodeLeft, pointScaleFactor, false, textRounding),

View File

@@ -227,7 +227,7 @@ void Node::setMeasureFunc(YGMeasureFunc measureFunc) {
if (measureFunc == nullptr) { if (measureFunc == nullptr) {
// TODO: t18095186 Move nodeType to opt-in function and mark appropriate // TODO: t18095186 Move nodeType to opt-in function and mark appropriate
// places in Litho // places in Litho
setNodeType(YGNodeTypeDefault); setNodeType(NodeType::Default);
} else { } else {
yoga::assertFatalWithNode( yoga::assertFatalWithNode(
this, this,
@@ -236,7 +236,7 @@ void Node::setMeasureFunc(YGMeasureFunc measureFunc) {
"children."); "children.");
// TODO: t18095186 Move nodeType to opt-in function and mark appropriate // TODO: t18095186 Move nodeType to opt-in function and mark appropriate
// places in Litho // places in Litho
setNodeType(YGNodeTypeText); setNodeType(NodeType::Text);
} }
measureFunc_ = measureFunc; measureFunc_ = measureFunc;

View File

@@ -14,6 +14,7 @@
#include <yoga/Yoga.h> #include <yoga/Yoga.h>
#include <yoga/config/Config.h> #include <yoga/config/Config.h>
#include <yoga/enums/NodeType.h>
#include <yoga/node/LayoutResults.h> #include <yoga/node/LayoutResults.h>
#include <yoga/style/CompactValue.h> #include <yoga/style/CompactValue.h>
#include <yoga/style/Style.h> #include <yoga/style/Style.h>
@@ -29,7 +30,7 @@ struct NodeFlags {
bool hasNewLayout : 1; bool hasNewLayout : 1;
bool isReferenceBaseline : 1; bool isReferenceBaseline : 1;
bool isDirty : 1; bool isDirty : 1;
uint32_t nodeType : 1; NodeType nodeType : bitCount<NodeType>();
}; };
#pragma pack(pop) #pragma pack(pop)
@@ -92,8 +93,8 @@ class YG_EXPORT Node : public ::YGNode {
return flags_.hasNewLayout; return flags_.hasNewLayout;
} }
YGNodeType getNodeType() const { NodeType getNodeType() const {
return static_cast<YGNodeType>(flags_.nodeType); return flags_.nodeType;
} }
bool hasMeasureFunc() const noexcept { bool hasMeasureFunc() const noexcept {
@@ -250,8 +251,8 @@ class YG_EXPORT Node : public ::YGNode {
flags_.hasNewLayout = hasNewLayout; flags_.hasNewLayout = hasNewLayout;
} }
void setNodeType(YGNodeType nodeType) { void setNodeType(NodeType nodeType) {
flags_.nodeType = static_cast<uint32_t>(nodeType) & 0x01; flags_.nodeType = nodeType;
} }
void setMeasureFunc(YGMeasureFunc measureFunc); void setMeasureFunc(YGMeasureFunc measureFunc);