basegfx/source/polygon/b2dpolypolygon.cxx | 11 +++++++++++ basegfx/source/polygon/b2dpolypolygontools.cxx | 1 + include/basegfx/polygon/b2dpolypolygon.hxx | 1 + 3 files changed, 13 insertions(+)
New commits: commit f1e15482bcf6bf65dc611e19cbd2ffff479ef141 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Fri Jul 1 14:03:22 2022 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Mon Jul 4 21:04:30 2022 +0200 tdf#137544 reserve space in polypolygon Change-Id: Ic8dc5b7479c1353487bac883fc0e704356e90798 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136802 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/basegfx/source/polygon/b2dpolypolygon.cxx b/basegfx/source/polygon/b2dpolypolygon.cxx index 4a81a82c4c71..a283828f661c 100644 --- a/basegfx/source/polygon/b2dpolypolygon.cxx +++ b/basegfx/source/polygon/b2dpolypolygon.cxx @@ -108,6 +108,11 @@ public: } } + void reserve(sal_uInt32 nCount) + { + maPolygons.reserve(nCount); + } + void insert(sal_uInt32 nIndex, const basegfx::B2DPolyPolygon& rPolyPolygon) { // add nCount polygons from rPolyPolygon @@ -288,6 +293,12 @@ public: mpPolyPolygon->insert(std::as_const(mpPolyPolygon)->count(), rPolygon, nCount); } + void B2DPolyPolygon::reserve(sal_uInt32 nCount) + { + if(nCount) + mpPolyPolygon->reserve(nCount); + } + B2DPolyPolygon B2DPolyPolygon::getDefaultAdaptiveSubdivision() const { B2DPolyPolygon aRetval; diff --git a/basegfx/source/polygon/b2dpolypolygontools.cxx b/basegfx/source/polygon/b2dpolypolygontools.cxx index b49de907d45c..3f8f51c52404 100644 --- a/basegfx/source/polygon/b2dpolypolygontools.cxx +++ b/basegfx/source/polygon/b2dpolypolygontools.cxx @@ -553,6 +553,7 @@ namespace basegfx::utils const css::drawing::PointSequenceSequence& rPointSequenceSequenceSource) { B2DPolyPolygon aRetval; + aRetval.reserve(rPointSequenceSequenceSource.getLength()); const css::drawing::PointSequence* pPointSequence = rPointSequenceSequenceSource.getConstArray(); const css::drawing::PointSequence* pPointSeqEnd = pPointSequence + rPointSequenceSequenceSource.getLength(); diff --git a/include/basegfx/polygon/b2dpolypolygon.hxx b/include/basegfx/polygon/b2dpolypolygon.hxx index f1420edef79a..474c0cbdb40f 100644 --- a/include/basegfx/polygon/b2dpolypolygon.hxx +++ b/include/basegfx/polygon/b2dpolypolygon.hxx @@ -68,6 +68,7 @@ namespace basegfx // insert/append single polygon void insert(sal_uInt32 nIndex, const B2DPolygon& rPolygon, sal_uInt32 nCount = 1); void append(const B2DPolygon& rPolygon, sal_uInt32 nCount = 1); + void reserve(sal_uInt32 nCount); /** Default adaptive subdivision access