Move equaltiy function from utils to an operator on YGFloatOptional
Reviewed By: emilsjolander Differential Revision: D7303460 fbshipit-source-id: 41ec0076ace621ec1a5bdbab00b72eea57780fff
This commit is contained in:
Родитель
bcd12f1e87
Коммит
63c073d994
|
@ -57,9 +57,3 @@ float YGFloatSanitize(const float& val) {
|
||||||
float YGUnwrapFloatOptional(const YGFloatOptional& op) {
|
float YGUnwrapFloatOptional(const YGFloatOptional& op) {
|
||||||
return op.isUndefined() ? YGUndefined : op.getValue();
|
return op.isUndefined() ? YGUndefined : op.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool YGFloatOptionalFloatEquals(
|
|
||||||
const YGFloatOptional& optional,
|
|
||||||
const float& val) {
|
|
||||||
return YGUnwrapFloatOptional(optional) == val;
|
|
||||||
}
|
|
||||||
|
|
|
@ -94,12 +94,6 @@ float YGFloatSanitize(const float& val);
|
||||||
// TODO: Get rid off this function
|
// TODO: Get rid off this function
|
||||||
float YGUnwrapFloatOptional(const YGFloatOptional& op);
|
float YGUnwrapFloatOptional(const YGFloatOptional& op);
|
||||||
|
|
||||||
// This function returns true if val and optional both are undefined or if val
|
|
||||||
// and optional.val is true, otherwise its false.
|
|
||||||
bool YGFloatOptionalFloatEquals(
|
|
||||||
const YGFloatOptional& optional,
|
|
||||||
const float& val);
|
|
||||||
|
|
||||||
YGFlexDirection YGFlexDirectionCross(
|
YGFlexDirection YGFlexDirectionCross(
|
||||||
const YGFlexDirection flexDirection,
|
const YGFlexDirection flexDirection,
|
||||||
const YGDirection direction);
|
const YGDirection direction);
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "YGFloatOptional.h"
|
#include "YGFloatOptional.h"
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include "Yoga.h"
|
||||||
|
|
||||||
YGFloatOptional::YGFloatOptional(const float& value)
|
YGFloatOptional::YGFloatOptional(const float& value)
|
||||||
: value_(value), isUndefined_(false) {}
|
: value_(value), isUndefined_(false) {}
|
||||||
|
@ -30,3 +31,25 @@ void YGFloatOptional::setValue(const float& val) {
|
||||||
bool YGFloatOptional::isUndefined() const {
|
bool YGFloatOptional::isUndefined() const {
|
||||||
return isUndefined_;
|
return isUndefined_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool YGFloatOptional::operator==(const YGFloatOptional& op) const {
|
||||||
|
if (isUndefined_ == op.isUndefined()) {
|
||||||
|
return isUndefined_ ? true : value_ == op.getValue();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool YGFloatOptional::operator!=(const YGFloatOptional& op) const {
|
||||||
|
return !(*this == op);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool YGFloatOptional::operator==(const float& val) const {
|
||||||
|
if (YGFloatIsUndefined(val) == isUndefined_) {
|
||||||
|
return isUndefined_ ? true : val == value_;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool YGFloatOptional::operator!=(const float& val) const {
|
||||||
|
return !(*this == val);
|
||||||
|
}
|
||||||
|
|
|
@ -23,4 +23,10 @@ struct YGFloatOptional {
|
||||||
void setValue(const float& val);
|
void setValue(const float& val);
|
||||||
|
|
||||||
bool isUndefined() const;
|
bool isUndefined() const;
|
||||||
|
|
||||||
|
bool operator==(const YGFloatOptional& op) const;
|
||||||
|
bool operator!=(const YGFloatOptional& op) const;
|
||||||
|
|
||||||
|
bool operator==(const float& val) const;
|
||||||
|
bool operator!=(const float& val) const;
|
||||||
};
|
};
|
||||||
|
|
|
@ -801,7 +801,7 @@ YG_NODE_STYLE_PROPERTY_IMPL(YGDisplay, Display, display, display);
|
||||||
|
|
||||||
// TODO(T26792433): Change the API to accept YGFloatOptional.
|
// TODO(T26792433): Change the API to accept YGFloatOptional.
|
||||||
void YGNodeStyleSetFlex(const YGNodeRef node, const float flex) {
|
void YGNodeStyleSetFlex(const YGNodeRef node, const float flex) {
|
||||||
if (!YGFloatOptionalFloatEquals(node->getStyle().flex, flex)) {
|
if (node->getStyle().flex != flex) {
|
||||||
YGStyle style = node->getStyle();
|
YGStyle style = node->getStyle();
|
||||||
if (YGFloatIsUndefined(flex)) {
|
if (YGFloatIsUndefined(flex)) {
|
||||||
style.flex = YGFloatOptional();
|
style.flex = YGFloatOptional();
|
||||||
|
@ -821,7 +821,7 @@ float YGNodeStyleGetFlex(const YGNodeRef node) {
|
||||||
|
|
||||||
// TODO(T26792433): Change the API to accept YGFloatOptional.
|
// TODO(T26792433): Change the API to accept YGFloatOptional.
|
||||||
void YGNodeStyleSetFlexGrow(const YGNodeRef node, const float flexGrow) {
|
void YGNodeStyleSetFlexGrow(const YGNodeRef node, const float flexGrow) {
|
||||||
if (!YGFloatOptionalFloatEquals(node->getStyle().flexGrow, flexGrow)) {
|
if (node->getStyle().flexGrow != flexGrow) {
|
||||||
YGStyle style = node->getStyle();
|
YGStyle style = node->getStyle();
|
||||||
if (YGFloatIsUndefined(flexGrow)) {
|
if (YGFloatIsUndefined(flexGrow)) {
|
||||||
style.flexGrow = YGFloatOptional();
|
style.flexGrow = YGFloatOptional();
|
||||||
|
@ -835,7 +835,7 @@ void YGNodeStyleSetFlexGrow(const YGNodeRef node, const float flexGrow) {
|
||||||
|
|
||||||
// TODO(T26792433): Change the API to accept YGFloatOptional.
|
// TODO(T26792433): Change the API to accept YGFloatOptional.
|
||||||
void YGNodeStyleSetFlexShrink(const YGNodeRef node, const float flexShrink) {
|
void YGNodeStyleSetFlexShrink(const YGNodeRef node, const float flexShrink) {
|
||||||
if (!YGFloatOptionalFloatEquals(node->getStyle().flexShrink, flexShrink)) {
|
if (node->getStyle().flexShrink != flexShrink) {
|
||||||
YGStyle style = node->getStyle();
|
YGStyle style = node->getStyle();
|
||||||
if (YGFloatIsUndefined(flexShrink)) {
|
if (YGFloatIsUndefined(flexShrink)) {
|
||||||
style.flexShrink = YGFloatOptional();
|
style.flexShrink = YGFloatOptional();
|
||||||
|
@ -940,7 +940,7 @@ float YGNodeStyleGetAspectRatio(const YGNodeRef node) {
|
||||||
|
|
||||||
// TODO(T26792433): Change the API to accept YGFloatOptional.
|
// TODO(T26792433): Change the API to accept YGFloatOptional.
|
||||||
void YGNodeStyleSetAspectRatio(const YGNodeRef node, const float aspectRatio) {
|
void YGNodeStyleSetAspectRatio(const YGNodeRef node, const float aspectRatio) {
|
||||||
if (!YGFloatOptionalFloatEquals(node->getStyle().aspectRatio, aspectRatio)) {
|
if (node->getStyle().aspectRatio != aspectRatio) {
|
||||||
YGStyle style = node->getStyle();
|
YGStyle style = node->getStyle();
|
||||||
style.aspectRatio = YGFloatOptional(aspectRatio);
|
style.aspectRatio = YGFloatOptional(aspectRatio);
|
||||||
node->setStyle(style);
|
node->setStyle(style);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче