diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2024-04-09 20:55:20 +0500 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2024-04-09 20:55:20 +0500 |
commit | 6d49cae9c32f485ddb071f12e3ad98612251c4ef (patch) | |
tree | 74fa756d529fcf85626cc2b11705a57e1dfb4086 | |
parent | Revert "Simplify and drop unused method" (diff) | |
download | core-6d49cae9c32f485ddb071f12e3ad98612251c4ef.tar.gz core-6d49cae9c32f485ddb071f12e3ad98612251c4ef.zip |
Revert "Fix UB after 8962141a12c966b2d891829925e6203bf8d51852"
This reverts commit 49e6927e3bd44021796b97d1ebb7886923f6cbcc.
-rw-r--r-- | vcl/source/gdi/sallayout.cxx | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx index c8c2d6ca1093..7397748ecd72 100644 --- a/vcl/source/gdi/sallayout.cxx +++ b/vcl/source/gdi/sallayout.cxx @@ -216,10 +216,7 @@ bool SalLayout::GetOutline(basegfx::B2DPolyPolygonVector& rVector) const } // No need to expand to the next pixel, when the character only covers its tiny fraction -static double trimInsignificant(double n) -{ - return std::abs(n) >= 0x1p53 ? n : std::round(n * 1e5) / 1e5; -} +static double trimInsignificant(double n) { return std::round(n * 1e5) / 1e5; } bool SalLayout::GetBoundRect(tools::Rectangle& rRect) const { @@ -246,19 +243,10 @@ bool SalLayout::GetBoundRect(tools::Rectangle& rRect) const bRet = true; } } - if (aUnion.isEmpty()) - { - rRect = {}; - } - else - { - double l = rtl::math::approxFloor(trimInsignificant(aUnion.getMinX())), - t = rtl::math::approxFloor(trimInsignificant(aUnion.getMinY())), - r = rtl::math::approxCeil(trimInsignificant(aUnion.getMaxX())), - b = rtl::math::approxCeil(trimInsignificant(aUnion.getMaxY())); - assert(std::isfinite(l) && std::isfinite(t) && std::isfinite(r) && std::isfinite(b)); - rRect = tools::Rectangle(l, t, r, b); - } + rRect = tools::Rectangle(rtl::math::approxFloor(trimInsignificant(aUnion.getMinX())), + rtl::math::approxFloor(trimInsignificant(aUnion.getMinY())), + rtl::math::approxCeil(trimInsignificant(aUnion.getMaxX())), + rtl::math::approxCeil(trimInsignificant(aUnion.getMaxY()))); return bRet; } |