summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2024-04-09 20:55:20 +0500
committerMike Kaganski <mike.kaganski@collabora.com>2024-04-09 20:55:20 +0500
commit6d49cae9c32f485ddb071f12e3ad98612251c4ef (patch)
tree74fa756d529fcf85626cc2b11705a57e1dfb4086
parentRevert "Simplify and drop unused method" (diff)
downloadcore-6d49cae9c32f485ddb071f12e3ad98612251c4ef.tar.gz
core-6d49cae9c32f485ddb071f12e3ad98612251c4ef.zip
Revert "Fix UB after 8962141a12c966b2d891829925e6203bf8d51852"
This reverts commit 49e6927e3bd44021796b97d1ebb7886923f6cbcc.
-rw-r--r--vcl/source/gdi/sallayout.cxx22
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;
}