diff options
author | Noel Grandin <noel@peralex.com> | 2015-12-10 12:27:50 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2015-12-11 10:11:23 +0200 |
commit | 58d8d8ac67aa9b907f1304a48efa0f7a473d9de4 (patch) | |
tree | a0d88f3c8a57ce9d08d97c803ea0ec83a3dd8b62 /sfx2 | |
parent | 44ad6aca0dee29841ec7cd15c6d0ad9b3dcaedbe (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 'sfx2')
-rw-r--r-- | sfx2/source/control/recentdocsviewitem.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/control/templateabstractview.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/control/templatecontaineritem.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/control/templateviewitem.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/control/thumbnailview.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/control/thumbnailviewitem.cxx | 8 | ||||
-rw-r--r-- | sfx2/source/dialog/infobar.cxx | 4 |
7 files changed, 11 insertions, 11 deletions
diff --git a/sfx2/source/control/recentdocsviewitem.cxx b/sfx2/source/control/recentdocsviewitem.cxx index abf4325021f0..982579ed1905 100644 --- a/sfx2/source/control/recentdocsviewitem.cxx +++ b/sfx2/source/control/recentdocsviewitem.cxx @@ -152,7 +152,7 @@ void RecentDocsViewItem::Paint(drawinglayer::processor2d::BaseProcessor2D *pProc // paint the remove icon when highlighted if (isHighlighted()) { - drawinglayer::primitive2d::Primitive2DSequence aSeq(1); + drawinglayer::primitive2d::Primitive2DContainer aSeq(1); Point aIconPos(getRemoveIconArea().TopLeft()); diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx index 38c0609624b1..4a2a9138c1f2 100644 --- a/sfx2/source/control/templateabstractview.cxx +++ b/sfx2/source/control/templateabstractview.cxx @@ -304,7 +304,7 @@ void TemplateAbstractView::Paint(vcl::RenderContext& rRenderContext, const Recta Point(rRect.BottomRight().X(), mnHeaderHeight)); - drawinglayer::primitive2d::Primitive2DSequence aSeq(1); + drawinglayer::primitive2d::Primitive2DContainer aSeq(1); aSeq[0] = drawinglayer::primitive2d::Primitive2DReference( new PolyPolygonColorPrimitive2D(B2DPolyPolygon(::tools::Polygon(aRect).getB2DPolygon()), maFillColor.getBColor())); diff --git a/sfx2/source/control/templatecontaineritem.cxx b/sfx2/source/control/templatecontaineritem.cxx index 5690a2e4f337..afeac9534121 100644 --- a/sfx2/source/control/templatecontaineritem.cxx +++ b/sfx2/source/control/templatecontaineritem.cxx @@ -66,7 +66,7 @@ void TemplateContainerItem::Paint (drawinglayer::processor2d::BaseProcessor2D *p nSeqSize += 3; BColor aFillColor = pAttrs->aFillColor; - drawinglayer::primitive2d::Primitive2DSequence aSeq(nSeqSize); + drawinglayer::primitive2d::Primitive2DContainer aSeq(nSeqSize); double fTransparence = 0.0; // Draw background diff --git a/sfx2/source/control/templateviewitem.cxx b/sfx2/source/control/templateviewitem.cxx index 950c32612895..dbcafece5208 100644 --- a/sfx2/source/control/templateviewitem.cxx +++ b/sfx2/source/control/templateviewitem.cxx @@ -69,7 +69,7 @@ void TemplateViewItem::Paint(drawinglayer::processor2d::BaseProcessor2D *pProces BColor aFillColor = pAttrs->aFillColor; int nCount = maSubTitle.isEmpty() ? 5 : 6; - drawinglayer::primitive2d::Primitive2DSequence aSeq(nCount); + drawinglayer::primitive2d::Primitive2DContainer aSeq(nCount); double fTransparence = 0.0; // Draw background diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index 6e5321d4aeea..dd6f1bfaf76e 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -837,7 +837,7 @@ void ThumbnailView::Paint(vcl::RenderContext& rRenderContext, const Rectangle& r size_t nItemCount = mItemList.size(); // Draw background - drawinglayer::primitive2d::Primitive2DSequence aSeq(1); + drawinglayer::primitive2d::Primitive2DContainer aSeq(1); aSeq[0] = drawinglayer::primitive2d::Primitive2DReference( new PolyPolygonColorPrimitive2D( B2DPolyPolygon( ::tools::Polygon(Rectangle(Point(), GetOutputSizePixel()), 0, 0).getB2DPolygon()), diff --git a/sfx2/source/control/thumbnailviewitem.cxx b/sfx2/source/control/thumbnailviewitem.cxx index a866b0d0a619..0d2e8f383fe8 100644 --- a/sfx2/source/control/thumbnailviewitem.cxx +++ b/sfx2/source/control/thumbnailviewitem.cxx @@ -262,7 +262,7 @@ void ThumbnailViewItem::Paint (drawinglayer::processor2d::BaseProcessor2D *pProc const ThumbnailItemAttributes *pAttrs) { BColor aFillColor = pAttrs->aFillColor; - drawinglayer::primitive2d::Primitive2DSequence aSeq(4); + drawinglayer::primitive2d::Primitive2DContainer aSeq(4); double fTransparence = 0.0; // Draw background @@ -314,7 +314,7 @@ void ThumbnailViewItem::Paint (drawinglayer::processor2d::BaseProcessor2D *pProc pProcessor->process(aSeq); } -void ThumbnailViewItem::addTextPrimitives (const OUString& rText, const ThumbnailItemAttributes *pAttrs, Point aPos, drawinglayer::primitive2d::Primitive2DSequence& rSeq) +void ThumbnailViewItem::addTextPrimitives (const OUString& rText, const ThumbnailItemAttributes *pAttrs, Point aPos, drawinglayer::primitive2d::Primitive2DContainer& rSeq) { drawinglayer::primitive2d::TextLayouterDevice aTextDev; @@ -326,8 +326,8 @@ void ThumbnailViewItem::addTextPrimitives (const OUString& rText, const Thumbnai aTextEngine.SetMaxTextWidth(maDrawArea.getWidth()); aTextEngine.SetText(rText); - sal_Int32 nPrimitives = rSeq.getLength(); - rSeq.realloc(nPrimitives + aTextEngine.GetLineCount(0)); + sal_Int32 nPrimitives = rSeq.size(); + rSeq.resize(nPrimitives + aTextEngine.GetLineCount(0)); // Create the text primitives sal_uInt16 nLineStart = 0; diff --git a/sfx2/source/dialog/infobar.cxx b/sfx2/source/dialog/infobar.cxx index fbf1e4f21740..a3c7f54de736 100644 --- a/sfx2/source/dialog/infobar.cxx +++ b/sfx2/source/dialog/infobar.cxx @@ -71,7 +71,7 @@ void SfxCloseButton::Paint(vcl::RenderContext& rRenderContext, const Rectangle&) const Rectangle aRect(Point(0, 0), PixelToLogic(GetSizePixel())); - drawinglayer::primitive2d::Primitive2DSequence aSeq(2); + drawinglayer::primitive2d::Primitive2DContainer aSeq(2); BColor aLightColor; BColor aDarkColor; @@ -168,7 +168,7 @@ void SfxInfoBarWindow::Paint(vcl::RenderContext& rRenderContext, const Rectangle const Rectangle aRect(Point(0, 0), PixelToLogic(GetSizePixel())); - drawinglayer::primitive2d::Primitive2DSequence aSeq(2); + drawinglayer::primitive2d::Primitive2DContainer aSeq(2); BColor aLightColor; BColor aDarkColor; |