diff options
author | Caolán McNamara <caolanm@redhat.com> | 2022-07-17 15:26:16 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2022-07-17 17:23:44 +0200 |
commit | 8ab54ac42ca2516c333a49fb23f6d27196122c22 (patch) | |
tree | 9b69dd8a498e2ec93663045d281562828a3d2ab9 /basegfx | |
parent | 604583b177fbf8fa5044e54d0a35b9adff949e45 (diff) |
ofz#48585 Out-of-memory
Change-Id: If6bb603cc78863df88d5630b4bd5b1198b4050de
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137148
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'basegfx')
-rw-r--r-- | basegfx/source/curve/b2dcubicbezier.cxx | 4 | ||||
-rw-r--r-- | basegfx/source/polygon/b2dpolygontools.cxx | 4 | ||||
-rw-r--r-- | basegfx/source/polygon/b2dpolypolygontools.cxx | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/basegfx/source/curve/b2dcubicbezier.cxx b/basegfx/source/curve/b2dcubicbezier.cxx index 6528e1492a32..d33cd82b194d 100644 --- a/basegfx/source/curve/b2dcubicbezier.cxx +++ b/basegfx/source/curve/b2dcubicbezier.cxx @@ -610,12 +610,12 @@ namespace basegfx } // adaptive subdivide by distance - void B2DCubicBezier::adaptiveSubdivideByDistance(B2DPolygon& rTarget, double fDistanceBound) const + void B2DCubicBezier::adaptiveSubdivideByDistance(B2DPolygon& rTarget, double fDistanceBound, int nRecurseLimit) const { if(isBezier()) { ImpSubDivDistance(maStartPoint, maControlPointA, maControlPointB, maEndPoint, rTarget, - fDistanceBound * fDistanceBound, std::numeric_limits<double>::max(), 30); + fDistanceBound * fDistanceBound, std::numeric_limits<double>::max(), nRecurseLimit); } else { diff --git a/basegfx/source/polygon/b2dpolygontools.cxx b/basegfx/source/polygon/b2dpolygontools.cxx index 4b8550546e5c..03f5299ca505 100644 --- a/basegfx/source/polygon/b2dpolygontools.cxx +++ b/basegfx/source/polygon/b2dpolygontools.cxx @@ -157,7 +157,7 @@ namespace basegfx::utils return rCandidate.getContinuityInPoint(nIndex); } - B2DPolygon adaptiveSubdivideByDistance(const B2DPolygon& rCandidate, double fDistanceBound) + B2DPolygon adaptiveSubdivideByDistance(const B2DPolygon& rCandidate, double fDistanceBound, int nRecurseLimit) { if(rCandidate.areControlPointsUsed()) { @@ -213,7 +213,7 @@ namespace basegfx::utils } // call adaptive subdivide which adds edges to aRetval accordingly - aBezier.adaptiveSubdivideByDistance(aRetval, fBound); + aBezier.adaptiveSubdivideByDistance(aRetval, fBound, nRecurseLimit); } else { diff --git a/basegfx/source/polygon/b2dpolypolygontools.cxx b/basegfx/source/polygon/b2dpolypolygontools.cxx index 3f8f51c52404..faf734f6e79e 100644 --- a/basegfx/source/polygon/b2dpolypolygontools.cxx +++ b/basegfx/source/polygon/b2dpolypolygontools.cxx @@ -113,7 +113,7 @@ namespace basegfx::utils return rCandidate; } - B2DPolyPolygon adaptiveSubdivideByDistance(const B2DPolyPolygon& rCandidate, double fDistanceBound) + B2DPolyPolygon adaptiveSubdivideByDistance(const B2DPolyPolygon& rCandidate, double fDistanceBound, int nRecurseLimit) { if(rCandidate.areControlPointsUsed()) { @@ -123,7 +123,7 @@ namespace basegfx::utils { if(rPolygon.areControlPointsUsed()) { - aRetval.append(utils::adaptiveSubdivideByDistance(rPolygon, fDistanceBound)); + aRetval.append(utils::adaptiveSubdivideByDistance(rPolygon, fDistanceBound, nRecurseLimit)); } else { |