diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-12-03 14:11:06 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-12-04 12:32:06 +0100 |
commit | b739bdaba8064ae8b428cfa1c7c6010d662539a3 (patch) | |
tree | 3f01788dbeccd2a3490fa8493b393ff20ef8b243 /sw | |
parent | 2219d37896ee4a8662d9dccc06a73302f8ac6c7c (diff) |
use visitor in getViewIndependentPrimitive2DContainer
to reduce intermediate temporary data creation
Change-Id: I3f13b0e02c1fa374e8d70768ae47c7f6da254462
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126322
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/core/draw/dcontact.cxx | 2 | ||||
-rw-r--r-- | sw/source/core/draw/dflyobj.cxx | 16 |
2 files changed, 7 insertions, 11 deletions
diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx index cb9618c44e8b..409287f7521d 100644 --- a/sw/source/core/draw/dcontact.cxx +++ b/sw/source/core/draw/dcontact.cxx @@ -2202,7 +2202,7 @@ namespace sdr::contact else { // single object, use method from referenced object to get the Primitive2DSequence - xRetval = rReferencedObject.GetViewContact().getViewIndependentPrimitive2DContainer(); + rReferencedObject.GetViewContact().getViewIndependentPrimitive2DContainer(xRetval); } if(!xRetval.empty()) diff --git a/sw/source/core/draw/dflyobj.cxx b/sw/source/core/draw/dflyobj.cxx index 5298f1a296ba..f5d8b88ca36d 100644 --- a/sw/source/core/draw/dflyobj.cxx +++ b/sw/source/core/draw/dflyobj.cxx @@ -90,7 +90,7 @@ namespace sdr::contact * * @note ONLY based on model data */ - virtual drawinglayer::primitive2d::Primitive2DContainer createViewIndependentPrimitive2DSequence() const override; + virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override; public: /// basic constructor, used from SdrObject. @@ -102,10 +102,9 @@ namespace sdr::contact } - drawinglayer::primitive2d::Primitive2DContainer VCOfSwFlyDrawObj::createViewIndependentPrimitive2DSequence() const + void VCOfSwFlyDrawObj::createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&) const { // currently gets not visualized, return empty sequence - return drawinglayer::primitive2d::Primitive2DContainer(); } } // end of namespace sdr::contact @@ -260,7 +259,7 @@ namespace sdr::contact * * @note ONLY based on model data */ - virtual drawinglayer::primitive2d::Primitive2DContainer createViewIndependentPrimitive2DSequence() const override; + virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const override; public: /// basic constructor, used from SdrObject. @@ -281,9 +280,8 @@ namespace sdr::contact namespace sdr::contact { - drawinglayer::primitive2d::Primitive2DContainer VCOfSwVirtFlyDrawObj::createViewIndependentPrimitive2DSequence() const + void VCOfSwVirtFlyDrawObj::createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor) const { - drawinglayer::primitive2d::Primitive2DContainer xRetval; const SdrObject& rReferencedObject = GetSwVirtFlyDrawObj().GetReferencedObj(); if(dynamic_cast<const SwFlyDrawObj*>( &rReferencedObject) != nullptr) @@ -299,12 +297,10 @@ namespace sdr::contact GetSwVirtFlyDrawObj(), aOuterRange)); - xRetval = drawinglayer::primitive2d::Primitive2DContainer { xPrimitive }; + rVisitor.visit(xPrimitive); } } - - return xRetval; - } + } } // end of namespace sdr::contact |