From 2fe65b032e9ec3faf3cef31290372b9face2d3f1 Mon Sep 17 00:00:00 2001 From: Pritesh Nandgaonkar Date: Mon, 15 Jan 2018 10:09:53 -0800 Subject: [PATCH] Move trailing padding function as a method on YGNode Reviewed By: emilsjolander Differential Revision: D6711897 fbshipit-source-id: fa2e1a8e31242358a6e94aef51368e2c2c58b79d --- ReactCommon/yoga/yoga/YGNode.cpp | 15 +++++++++++++++ ReactCommon/yoga/yoga/YGNode.h | 1 + ReactCommon/yoga/yoga/Yoga.cpp | 24 +++--------------------- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/ReactCommon/yoga/yoga/YGNode.cpp b/ReactCommon/yoga/yoga/YGNode.cpp index 90bff5de8b8229..7b4d98e1c4d2fa 100644 --- a/ReactCommon/yoga/yoga/YGNode.cpp +++ b/ReactCommon/yoga/yoga/YGNode.cpp @@ -645,3 +645,18 @@ float YGNode::getLeadingPadding( widthSize), 0.0f); } + +float YGNode::getTrailingPadding( + const YGFlexDirection axis, + const float widthSize) { + if (YGFlexDirectionIsRow(axis) && + style_.padding[YGEdgeEnd].unit != YGUnitUndefined && + YGResolveValue(style_.padding[YGEdgeEnd], widthSize) >= 0.0f) { + return YGResolveValue(style_.padding[YGEdgeEnd], widthSize); + } + return fmaxf( + YGResolveValue( + *YGComputedEdgeValue(style_.padding, trailing[axis], &YGValueZero), + widthSize), + 0.0f); +} diff --git a/ReactCommon/yoga/yoga/YGNode.h b/ReactCommon/yoga/yoga/YGNode.h index 2966894162679c..8ae19decd2f23e 100644 --- a/ReactCommon/yoga/yoga/YGNode.h +++ b/ReactCommon/yoga/yoga/YGNode.h @@ -89,6 +89,7 @@ struct YGNode { float getLeadingBorder(const YGFlexDirection flexDirection); float getTrailingBorder(const YGFlexDirection flexDirection); float getLeadingPadding(const YGFlexDirection axis, const float widthSize); + float getTrailingPadding(const YGFlexDirection axis, const float widthSize); // Setters void setContext(void* context); diff --git a/ReactCommon/yoga/yoga/Yoga.cpp b/ReactCommon/yoga/yoga/Yoga.cpp index bb1625616dd396..a6b89f88d2cac1 100644 --- a/ReactCommon/yoga/yoga/Yoga.cpp +++ b/ReactCommon/yoga/yoga/Yoga.cpp @@ -762,23 +762,6 @@ static const std::array pos = {{ static const std::array dim = { {YGDimensionHeight, YGDimensionHeight, YGDimensionWidth, YGDimensionWidth}}; -static float YGNodeTrailingPadding(const YGNodeRef node, - const YGFlexDirection axis, - const float widthSize) { - if (YGFlexDirectionIsRow(axis) && - node->getStyle().padding[YGEdgeEnd].unit != YGUnitUndefined && - YGResolveValue(node->getStyle().padding[YGEdgeEnd], widthSize) >= 0.0f) { - return YGResolveValue(node->getStyle().padding[YGEdgeEnd], widthSize); - } - - return fmaxf( - YGResolveValue( - *YGComputedEdgeValue( - node->getStyle().padding, trailing[axis], &YGValueZero), - widthSize), - 0.0f); -} - static inline float YGNodeLeadingPaddingAndBorder( const YGNodeRef node, const YGFlexDirection axis, @@ -790,7 +773,7 @@ static inline float YGNodeLeadingPaddingAndBorder( static inline float YGNodeTrailingPaddingAndBorder(const YGNodeRef node, const YGFlexDirection axis, const float widthSize) { - return YGNodeTrailingPadding(node, axis, widthSize) + + return node->getTrailingPadding(axis, widthSize) + node->getTrailingBorder(axis); } @@ -1741,12 +1724,11 @@ static void YGNodelayoutImpl(const YGNodeRef node, node->setLayoutPadding( node->getLeadingPadding(flexRowDirection, parentWidth), YGEdgeStart); node->setLayoutPadding( - YGNodeTrailingPadding(node, flexRowDirection, parentWidth), YGEdgeEnd); + node->getTrailingPadding(flexRowDirection, parentWidth), YGEdgeEnd); node->setLayoutPadding( node->getLeadingPadding(flexColumnDirection, parentWidth), YGEdgeTop); node->setLayoutPadding( - YGNodeTrailingPadding(node, flexColumnDirection, parentWidth), - YGEdgeBottom); + node->getTrailingPadding(flexColumnDirection, parentWidth), YGEdgeBottom); if (node->getMeasure() != nullptr) { YGNodeWithMeasureFuncSetMeasuredDimensions(node,