Skip to content

Commit

Permalink
Prevent reciprocal calculation for units with a constant denominator
Browse files Browse the repository at this point in the history
  • Loading branch information
younies committed Jan 20, 2025
1 parent 0cda889 commit 9b2bce2
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions icu4c/source/i18n/measunit_extra.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1488,6 +1488,11 @@ MeasureUnit MeasureUnit::withDimensionality(int32_t dimensionality, UErrorCode&

MeasureUnit MeasureUnit::reciprocal(UErrorCode& status) const {
MeasureUnitImpl impl = MeasureUnitImpl::forMeasureUnitMaybeCopy(*this, status);
// The reciprocal of a unit that has a constant denominator is not allowed.
if (impl.constantDenominator != 0) {
status = U_ILLEGAL_ARGUMENT_ERROR;
return {};
}
impl.takeReciprocal(status);
return std::move(impl).build(status);
}
Expand Down

0 comments on commit 9b2bce2

Please sign in to comment.