summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2021-12-03 14:11:06 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-12-04 12:32:06 +0100
commitb739bdaba8064ae8b428cfa1c7c6010d662539a3 (patch)
tree3f01788dbeccd2a3490fa8493b393ff20ef8b243 /sw
parent2219d37896ee4a8662d9dccc06a73302f8ac6c7c (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.cxx2
-rw-r--r--sw/source/core/draw/dflyobj.cxx16
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