Eliminate YGFloatOptional::getValue()
Summary: @public `YGFloatOptional::getValue()` has the unfortunate property of calling `std::exit` if the wrapped value is undefined. That forces `x.isUndefined() ? fallback : x.getValue()` as access pattern. Here, we replace that by introducing `YGFloatOptional::orElse(float)` which encapsulates that pattern. Other additions are `orElseGet([] { … })` and some extra operators. Reviewed By: SidharthGuglani Differential Revision: D13209152 fbshipit-source-id: 4e5deceaaaaf8eaed44846a8c152cc8b235e815c
This commit is contained in:
committed by
Facebook Github Bot
parent
ed3b54b603
commit
50ec35575f
@@ -56,14 +56,17 @@ float YGFloatSanitize(const float val) {
|
||||
}
|
||||
|
||||
float YGUnwrapFloatOptional(const YGFloatOptional& op) {
|
||||
return op.isUndefined() ? YGUndefined : op.getValue();
|
||||
return op.unwrap();
|
||||
}
|
||||
|
||||
YGFloatOptional YGFloatOptionalMax(
|
||||
const YGFloatOptional& op1,
|
||||
const YGFloatOptional& op2) {
|
||||
if (!op1.isUndefined() && !op2.isUndefined()) {
|
||||
return op1.getValue() > op2.getValue() ? op1 : op2;
|
||||
if (op1 > op2) {
|
||||
return op1;
|
||||
}
|
||||
if (op2 > op1) {
|
||||
return op2;
|
||||
}
|
||||
return op1.isUndefined() ? op2 : op1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user