From a86a90edd73476c4b40fb44dba9aa897840ec85e Mon Sep 17 00:00:00 2001 From: Valentin Balaschenko <13349202+vlntb@users.noreply.github.com> Date: Wed, 4 Feb 2026 13:21:24 +0000 Subject: [PATCH] avoid expensive assignement --- src/libxrpl/basics/Number.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libxrpl/basics/Number.cpp b/src/libxrpl/basics/Number.cpp index 1651e8aba2..1b967f3eb5 100644 --- a/src/libxrpl/basics/Number.cpp +++ b/src/libxrpl/basics/Number.cpp @@ -38,7 +38,10 @@ Number::getround() Number::rounding_mode Number::setround(rounding_mode mode) { - return std::exchange(mode_, mode); + auto const old = mode_; + if (old != mode) + mode_ = mode; + return old; } MantissaRange::mantissa_scale @@ -52,6 +55,8 @@ Number::setMantissaScale(MantissaRange::mantissa_scale scale) { if (scale != MantissaRange::small && scale != MantissaRange::large) LogicError("Unknown mantissa scale"); + if (range_.get().scale == scale) + return; range_ = scale == MantissaRange::small ? smallRange : largeRange; }