Skip to content
Permalink
Browse files

Moved YGNodeIsFlex as a method on YGNode

Reviewed By: emilsjolander

Differential Revision: D6711536

fbshipit-source-id: e60be7da55e3e8d254eb253c141d219a37a76087
  • Loading branch information...
priteshrnandgaonkar authored and facebook-github-bot committed Jan 15, 2018
1 parent fcf2c7c commit 2b27f1aa1964eba749876100be1f3ac4c085fa8f
Showing with 14 additions and 15 deletions.
  1. +6 −0 ReactCommon/yoga/yoga/YGNode.cpp
  2. +6 −7 ReactCommon/yoga/yoga/YGNode.h
  3. +2 −8 ReactCommon/yoga/yoga/Yoga.cpp
@@ -590,3 +590,9 @@ float YGNode::resolveFlexShrink() {
}
return config_->useWebDefaults ? kWebDefaultFlexShrink : kDefaultFlexShrink;
}

bool YGNode::isNodeFlexible() {
return (
(style_.positionType == YGPositionTypeRelative) &&
(resolveFlexGrow() != 0 || resolveFlexShrink() != 0));
}
@@ -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();
};
@@ -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.

0 comments on commit 2b27f1a

Please sign in to comment.
You can’t perform that action at this time.