Moved YGNodeIsFlex as a method on YGNode

Reviewed By: emilsjolander

Differential Revision: D6711536

fbshipit-source-id: e60be7da55e3e8d254eb253c141d219a37a76087
This commit is contained in:
Pritesh Nandgaonkar 2018-01-15 10:09:43 -08:00 committed by Facebook Github Bot
parent fcf2c7cf61
commit 2b27f1aa19
3 changed files with 14 additions and 15 deletions

View File

@ -590,3 +590,9 @@ float YGNode::resolveFlexShrink() {
}
return config_->useWebDefaults ? kWebDefaultFlexShrink : kDefaultFlexShrink;
}
bool YGNode::isNodeFlexible() {
return (
(style_.positionType == YGPositionTypeRelative) &&
(resolveFlexGrow() != 0 || resolveFlexShrink() != 0));
}

View File

@ -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();
};

View File

@ -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.