summaryrefslogtreecommitdiff
path: root/sw/source/uibase/docvw/AnchorOverlayObject.cxx
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-12-10 12:27:50 +0200
committerNoel Grandin <noel@peralex.com>2015-12-11 10:11:23 +0200
commit58d8d8ac67aa9b907f1304a48efa0f7a473d9de4 (patch)
treea0d88f3c8a57ce9d08d97c803ea0ec83a3dd8b62 /sw/source/uibase/docvw/AnchorOverlayObject.cxx
parent44ad6aca0dee29841ec7cd15c6d0ad9b3dcaedbe (diff)
tdf#69977: uno::Sequence is expensive
when used as a mutable data-structure. Plain std::vector halves the time taken to display the chart dialog Create a class to represent the std::vector we are going to be passing around, and move some of the utility methods into it to make the code prettier. Also create an optimised append(&&) method for the common case of appending small temporaries. Change-Id: I7f5b43fb4a8a84e40e6a52fcb7e9f974091b4485
Diffstat (limited to 'sw/source/uibase/docvw/AnchorOverlayObject.cxx')
-rw-r--r--sw/source/uibase/docvw/AnchorOverlayObject.cxx26
1 files changed, 13 insertions, 13 deletions
diff --git a/sw/source/uibase/docvw/AnchorOverlayObject.cxx b/sw/source/uibase/docvw/AnchorOverlayObject.cxx
index 67f4e3bcda9e..9adf4699f6f3 100644
--- a/sw/source/uibase/docvw/AnchorOverlayObject.cxx
+++ b/sw/source/uibase/docvw/AnchorOverlayObject.cxx
@@ -52,7 +52,7 @@ private:
bool mbLineSolid : 1;
protected:
- virtual drawinglayer::primitive2d::Primitive2DSequence create2DDecomposition(
+ virtual drawinglayer::primitive2d::Primitive2DContainer create2DDecomposition(
const drawinglayer::geometry::ViewInformation2D& rViewInformation) const override;
public:
@@ -90,10 +90,10 @@ public:
DeclPrimitive2DIDBlock()
};
-drawinglayer::primitive2d::Primitive2DSequence AnchorPrimitive::create2DDecomposition(
+drawinglayer::primitive2d::Primitive2DContainer AnchorPrimitive::create2DDecomposition(
const drawinglayer::geometry::ViewInformation2D& /*rViewInformation*/) const
{
- drawinglayer::primitive2d::Primitive2DSequence aRetval;
+ drawinglayer::primitive2d::Primitive2DContainer aRetval;
if ( AS_TRI == maAnchorState ||
AS_ALL == maAnchorState ||
@@ -105,7 +105,7 @@ drawinglayer::primitive2d::Primitive2DSequence AnchorPrimitive::create2DDecompos
basegfx::B2DPolyPolygon(getTriangle()),
getColor()));
- drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, aTriangle);
+ aRetval.push_back(aTriangle);
}
// prepare view-independent LineWidth and color
@@ -124,7 +124,7 @@ drawinglayer::primitive2d::Primitive2DSequence AnchorPrimitive::create2DDecompos
getLine(),
aLineAttribute));
- drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, aSolidLine);
+ aRetval.push_back(aSolidLine);
}
else
{
@@ -145,11 +145,11 @@ drawinglayer::primitive2d::Primitive2DSequence AnchorPrimitive::create2DDecompos
aLineAttribute,
aStrokeAttribute));
- drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, aStrokedLine);
+ aRetval.push_back(aStrokedLine);
}
}
- if(aRetval.hasElements() && getShadow())
+ if(!aRetval.empty() && getShadow())
{
// shadow is only for triangle and line start, and in upper left
// and lower right direction, in different colors
@@ -162,7 +162,7 @@ drawinglayer::primitive2d::Primitive2DSequence AnchorPrimitive::create2DDecompos
aDarkerColor.clamp();
// create shadow sequence
- drawinglayer::primitive2d::Primitive2DSequence aShadows(2);
+ drawinglayer::primitive2d::Primitive2DContainer aShadows(2);
basegfx::B2DHomMatrix aTransform;
aTransform.set(0, 2, -getDiscreteUnit());
@@ -184,10 +184,10 @@ drawinglayer::primitive2d::Primitive2DSequence AnchorPrimitive::create2DDecompos
aRetval));
// add shadow before geometry to make it be proccessed first
- const drawinglayer::primitive2d::Primitive2DSequence aTemporary(aRetval);
+ const drawinglayer::primitive2d::Primitive2DContainer aTemporary(aRetval);
aRetval = aShadows;
- drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(aRetval, aTemporary);
+ aRetval.append(aTemporary);
}
if ( AS_ALL == maAnchorState ||
@@ -200,7 +200,7 @@ drawinglayer::primitive2d::Primitive2DSequence AnchorPrimitive::create2DDecompos
getLineTop(),
aLineAttribute));
- drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, aLineTop);
+ aRetval.push_back(aLineTop);
}
return aRetval;
@@ -339,7 +339,7 @@ void AnchorOverlayObject::implResetGeometry()
maLineTop.clear();
}
-drawinglayer::primitive2d::Primitive2DSequence AnchorOverlayObject::createOverlayObjectPrimitive2DSequence()
+drawinglayer::primitive2d::Primitive2DContainer AnchorOverlayObject::createOverlayObjectPrimitive2DSequence()
{
implEnsureGeometry();
@@ -354,7 +354,7 @@ drawinglayer::primitive2d::Primitive2DSequence AnchorOverlayObject::createOverla
getShadowedEffect(),
getLineSolid()) );
- return drawinglayer::primitive2d::Primitive2DSequence(&aReference, 1);
+ return drawinglayer::primitive2d::Primitive2DContainer { aReference };
}
void AnchorOverlayObject::SetAllPosition( const basegfx::B2DPoint& rPoint1,