From 2b27f1aa1964eba749876100be1f3ac4c085fa8f Mon Sep 17 00:00:00 2001 From: Pritesh Nandgaonkar Date: Mon, 15 Jan 2018 10:09:43 -0800 Subject: [PATCH] Moved YGNodeIsFlex as a method on YGNode Reviewed By: emilsjolander Differential Revision: D6711536 fbshipit-source-id: e60be7da55e3e8d254eb253c141d219a37a76087 --- ReactCommon/yoga/yoga/YGNode.cpp | 6 ++++++ ReactCommon/yoga/yoga/YGNode.h | 13 ++++++------- ReactCommon/yoga/yoga/Yoga.cpp | 10 ++-------- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/ReactCommon/yoga/yoga/YGNode.cpp b/ReactCommon/yoga/yoga/YGNode.cpp index caee38443c6d87..c5ddd2f82cbc6f 100644 --- a/ReactCommon/yoga/yoga/YGNode.cpp +++ b/ReactCommon/yoga/yoga/YGNode.cpp @@ -590,3 +590,9 @@ float YGNode::resolveFlexShrink() { } return config_->useWebDefaults ? kWebDefaultFlexShrink : kDefaultFlexShrink; } + +bool YGNode::isNodeFlexible() { + return ( + (style_.positionType == YGPositionTypeRelative) && + (resolveFlexGrow() != 0 || resolveFlexShrink() != 0)); +} diff --git a/ReactCommon/yoga/yoga/YGNode.h b/ReactCommon/yoga/yoga/YGNode.h index b90c0e33672f7b..0ac44d1b4f6249 100644 --- a/ReactCommon/yoga/yoga/YGNode.h +++ b/ReactCommon/yoga/yoga/YGNode.h @@ -111,7 +111,11 @@ struct YGNode { void setLayoutMeasuredDimension(float measuredDimension, int index); void setLayoutHadOverflow(bool hadOverflow); void setLayoutDimension(float dimension, int index); - + void setLayoutDirection(YGDirection direction); + void setLayoutMargin(float margin, int index); + void setLayoutBorder(float border, int index); + void setLayoutPadding(float padding, int index); + void setLayoutPosition(float position, int index); void setPosition( const YGDirection direction, const float mainSize, @@ -131,15 +135,10 @@ struct YGNode { /// Removes the first occurrence of child bool removeChild(YGNodeRef child); void removeChild(uint32_t index); - void setLayoutDirection(YGDirection direction); - void setLayoutMargin(float margin, int index); - void setLayoutBorder(float border, int index); - void setLayoutPadding(float padding, int index); - void setLayoutPosition(float position, int index); - // Other methods void cloneChildrenIfNeeded(); void markDirtyAndPropogate(); float resolveFlexGrow(); float resolveFlexShrink(); + bool isNodeFlexible(); }; diff --git a/ReactCommon/yoga/yoga/Yoga.cpp b/ReactCommon/yoga/yoga/Yoga.cpp index d4171d619d7470..275ccc6cf6f647 100644 --- a/ReactCommon/yoga/yoga/Yoga.cpp +++ b/ReactCommon/yoga/yoga/Yoga.cpp @@ -915,12 +915,6 @@ static float YGBaseline(const YGNodeRef node) { return baseline + baselineChild->getLayout().position[YGEdgeTop]; } -static inline bool YGNodeIsFlex(const YGNodeRef node) { - return ( - node->getStyle().positionType == YGPositionTypeRelative && - (node->resolveFlexGrow() != 0 || node->resolveFlexShrink() != 0)); -} - static bool YGIsBaselineLayout(const YGNodeRef node) { if (YGFlexDirectionIsColumn(node->getStyle().flexDirection)) { return false; @@ -1611,7 +1605,7 @@ static void YGNodeComputeFlexBasisForChildren( if (measureModeMainDim == YGMeasureModeExactly) { for (auto child : children) { if (singleFlexChild != nullptr) { - if (YGNodeIsFlex(child)) { + if (child->isNodeFlexible()) { // There is already a flexible child, abort singleFlexChild = nullptr; break; @@ -2033,7 +2027,7 @@ static void YGNodelayoutImpl(const YGNodeRef node, sizeConsumedOnCurrentLine += flexBasisWithMinAndMaxConstraints + childMarginMainAxis; itemsOnLine++; - if (YGNodeIsFlex(child)) { + if (child->isNodeFlexible()) { totalFlexGrowFactors += child->resolveFlexGrow(); // Unlike the grow factor, the shrink factor is scaled relative to the child dimension.