C++ style enums 4/N: Errata (#1388)
Summary: X-link: https://github.com/facebook/react-native/pull/39451 Pull Request resolved: https://github.com/facebook/yoga/pull/1388 This converts usages of YGErrata to Errata Reviewed By: rozele Differential Revision: D49270354 fbshipit-source-id: 39c0d26a1609cca0a96da843796ab41c81e3af93
This commit is contained in:
committed by
Facebook GitHub Bot
parent
42e1f2c737
commit
6f5eaefc51
3
enums.py
3
enums.py
@@ -164,6 +164,9 @@ for name, values in sorted(ENUMS.items()):
|
||||
ordinal = value[0] if isinstance(value, tuple) else value
|
||||
f.write(f" {ordinal} = YG{name}{ordinal},\n")
|
||||
f.write("};\n\n")
|
||||
f.write(
|
||||
f"YG_DEFINE_ENUM_FLAG_OPERATORS({name})\n\n" if name in BITSET_ENUMS else ""
|
||||
)
|
||||
|
||||
f.write("template <>\n")
|
||||
f.write(f"constexpr inline int32_t ordinalCount<{name}>() {{\n")
|
||||
|
@@ -878,11 +878,11 @@ void* YGConfigGetContext(const YGConfigConstRef config) {
|
||||
}
|
||||
|
||||
void YGConfigSetErrata(YGConfigRef config, YGErrata errata) {
|
||||
resolveRef(config)->setErrata(errata);
|
||||
resolveRef(config)->setErrata(scopedEnum(errata));
|
||||
}
|
||||
|
||||
YGErrata YGConfigGetErrata(YGConfigConstRef config) {
|
||||
return resolveRef(config)->getErrata();
|
||||
return unscopedEnum(resolveRef(config)->getErrata());
|
||||
}
|
||||
|
||||
void YGConfigSetCloneNodeFunc(
|
||||
|
@@ -1755,7 +1755,7 @@ static void calculateLayoutImpl(
|
||||
availableInnerMainDim = maxInnerMainDim;
|
||||
} else {
|
||||
bool useLegacyStretchBehaviour =
|
||||
node->hasErrata(YGErrataStretchFlexBasis);
|
||||
node->hasErrata(Errata::StretchFlexBasis);
|
||||
|
||||
if (!useLegacyStretchBehaviour &&
|
||||
((!yoga::isUndefined(flexLine.layout.totalFlexGrowFactors) &&
|
||||
|
@@ -54,24 +54,24 @@ ExperimentalFeatureSet Config::getEnabledExperiments() const {
|
||||
return experimentalFeatures_;
|
||||
}
|
||||
|
||||
void Config::setErrata(YGErrata errata) {
|
||||
void Config::setErrata(Errata errata) {
|
||||
errata_ = errata;
|
||||
}
|
||||
|
||||
void Config::addErrata(YGErrata errata) {
|
||||
void Config::addErrata(Errata errata) {
|
||||
errata_ |= errata;
|
||||
}
|
||||
|
||||
void Config::removeErrata(YGErrata errata) {
|
||||
void Config::removeErrata(Errata errata) {
|
||||
errata_ &= (~errata);
|
||||
}
|
||||
|
||||
YGErrata Config::getErrata() const {
|
||||
Errata Config::getErrata() const {
|
||||
return errata_;
|
||||
}
|
||||
|
||||
bool Config::hasErrata(YGErrata errata) const {
|
||||
return (errata_ & errata) != YGErrataNone;
|
||||
bool Config::hasErrata(Errata errata) const {
|
||||
return (errata_ & errata) != Errata::None;
|
||||
}
|
||||
|
||||
void Config::setPointScaleFactor(float pointScaleFactor) {
|
||||
|
@@ -10,6 +10,7 @@
|
||||
#include <bitset>
|
||||
|
||||
#include <yoga/Yoga.h>
|
||||
#include <yoga/enums/Errata.h>
|
||||
#include <yoga/enums/ExperimentalFeature.h>
|
||||
|
||||
// Tag struct used to form the opaque YGConfigRef for the public C API
|
||||
@@ -51,11 +52,11 @@ class YG_EXPORT Config : public ::YGConfig {
|
||||
bool isExperimentalFeatureEnabled(ExperimentalFeature feature) const;
|
||||
ExperimentalFeatureSet getEnabledExperiments() const;
|
||||
|
||||
void setErrata(YGErrata errata);
|
||||
void addErrata(YGErrata errata);
|
||||
void removeErrata(YGErrata errata);
|
||||
YGErrata getErrata() const;
|
||||
bool hasErrata(YGErrata errata) const;
|
||||
void setErrata(Errata errata);
|
||||
void addErrata(Errata errata);
|
||||
void removeErrata(Errata errata);
|
||||
Errata getErrata() const;
|
||||
bool hasErrata(Errata errata) const;
|
||||
|
||||
void setPointScaleFactor(float pointScaleFactor);
|
||||
float getPointScaleFactor() const;
|
||||
@@ -82,7 +83,7 @@ class YG_EXPORT Config : public ::YGConfig {
|
||||
|
||||
ConfigFlags flags_{};
|
||||
ExperimentalFeatureSet experimentalFeatures_{};
|
||||
YGErrata errata_ = YGErrataNone;
|
||||
Errata errata_ = Errata::None;
|
||||
float pointScaleFactor_ = 1.0f;
|
||||
void* context_ = nullptr;
|
||||
};
|
||||
|
@@ -22,6 +22,8 @@ enum class Errata : uint32_t {
|
||||
Classic = YGErrataClassic,
|
||||
};
|
||||
|
||||
YG_DEFINE_ENUM_FLAG_OPERATORS(Errata)
|
||||
|
||||
template <>
|
||||
constexpr inline int32_t ordinalCount<Errata>() {
|
||||
return 4;
|
||||
|
@@ -21,6 +21,8 @@ enum class PrintOptions : uint32_t {
|
||||
Children = YGPrintOptionsChildren,
|
||||
};
|
||||
|
||||
YG_DEFINE_ENUM_FLAG_OPERATORS(PrintOptions)
|
||||
|
||||
template <>
|
||||
constexpr inline int32_t ordinalCount<PrintOptions>() {
|
||||
return 3;
|
||||
|
@@ -14,6 +14,7 @@
|
||||
#include <yoga/Yoga.h>
|
||||
|
||||
#include <yoga/config/Config.h>
|
||||
#include <yoga/enums/Errata.h>
|
||||
#include <yoga/enums/NodeType.h>
|
||||
#include <yoga/node/LayoutResults.h>
|
||||
#include <yoga/style/CompactValue.h>
|
||||
@@ -109,7 +110,7 @@ class YG_EXPORT Node : public ::YGNode {
|
||||
|
||||
float baseline(float width, float height) const;
|
||||
|
||||
bool hasErrata(YGErrata errata) const {
|
||||
bool hasErrata(Errata errata) const {
|
||||
return config_->hasErrata(errata);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user