summaryrefslogtreecommitdiff
path: root/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-07-31 14:20:52 +0100
committerCaolán McNamara <caolanm@redhat.com>2018-07-31 18:18:36 +0200
commit2a4b054b3685aaeca5bdcb2969bcfc25365421d9 (patch)
tree19dd2dfea163744e10395065898860236638f839 /drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx
parent4f13f8ddeebca1de9fd30f0aae71e3f84383656a (diff)
crashtesting: stack exhaustion exporting moz943243-4.svg to odg
happens on the crashtesting box, but not locally, comparing the stack frames its clear that the stack used on the crashtester for VclMetafileProcessor2D::processBasePrimitive2D is over double that used locally... comparison on > objdump -S workdir/CxxObject/drawinglayer/source/processor2d/vclmetafileprocessor2d.o |less gives... void VclMetafileProcessor2D::processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate) gcc-4.8.2-3.2.mga4 has... sub $0x11e8,%rsp vs... gcc-8.1.1-5.fc28.x86_64 has... sub $0x4c0,%rsp lets split up this method Change-Id: I73ef1eb0280224988176986918a2d025344197d0 Reviewed-on: https://gerrit.libreoffice.org/58362 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx')
-rw-r--r--drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx42
1 files changed, 42 insertions, 0 deletions
diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx
index 122cafa47978..65007b487727 100644
--- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx
+++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx
@@ -47,6 +47,28 @@ namespace drawinglayer { namespace attribute {
class LineStartEndAttribute;
}}
+namespace drawinglayer { namespace primitive2d {
+ class GraphicPrimitive2D;
+ class ControlPrimitive2D;
+ class TextHierarchyFieldPrimitive2D;
+ class TextHierarchyLinePrimitive2D;
+ class TextHierarchyBulletPrimitive2D;
+ class TextHierarchyParagraphPrimitive2D;
+ class TextHierarchyBlockPrimitive2D;
+ class TextSimplePortionPrimitive2D;
+ class PolygonHairlinePrimitive2D;
+ class PolygonStrokePrimitive2D;
+ class PolygonStrokeArrowPrimitive2D;
+ class PolyPolygonGraphicPrimitive2D;
+ class PolyPolygonHatchPrimitive2D;
+ class PolyPolygonGradientPrimitive2D;
+ class PolyPolygonColorPrimitive2D;
+ class MaskPrimitive2D;
+ class UnifiedTransparencePrimitive2D;
+ class TransparencePrimitive2D;
+ class StructureTagPrimitive2D;
+}}
+
namespace basegfx {
class BColor;
}
@@ -91,6 +113,26 @@ namespace drawinglayer
void impStartSvtGraphicStroke(SvtGraphicStroke const * pSvtGraphicStroke);
void impEndSvtGraphicStroke(SvtGraphicStroke* pSvtGraphicStroke);
+ void processGraphicPrimitive2D(const primitive2d::GraphicPrimitive2D& rGraphicPrimitive);
+ void processControlPrimitive2D(const primitive2d::ControlPrimitive2D& rControlPrimitive);
+ void processTextHierarchyFieldPrimitive2D(const primitive2d::TextHierarchyFieldPrimitive2D& rFieldPrimitive);
+ void processTextHierarchyLinePrimitive2D(const primitive2d::TextHierarchyLinePrimitive2D& rLinePrimitive);
+ void processTextHierarchyBulletPrimitive2D(const primitive2d::TextHierarchyBulletPrimitive2D& rBulletPrimitive);
+ void processTextHierarchyParagraphPrimitive2D(const primitive2d::TextHierarchyParagraphPrimitive2D& rParagraphPrimitive);
+ void processTextHierarchyBlockPrimitive2D(const primitive2d::TextHierarchyBlockPrimitive2D& rBlockPrimitive);
+ void processTextSimplePortionPrimitive2D(const primitive2d::TextSimplePortionPrimitive2D& rTextCandidate);
+ void processPolygonHairlinePrimitive2D(const primitive2d::PolygonHairlinePrimitive2D& rHairlinePrimitive);
+ void processPolygonStrokePrimitive2D(const primitive2d::PolygonStrokePrimitive2D& rStrokePrimitive);
+ void processPolygonStrokeArrowPrimitive2D(const primitive2d::PolygonStrokeArrowPrimitive2D& rStrokeArrowPrimitive);
+ void processPolyPolygonGraphicPrimitive2D(const primitive2d::PolyPolygonGraphicPrimitive2D& rBitmapCandidate);
+ void processPolyPolygonHatchPrimitive2D(const primitive2d::PolyPolygonHatchPrimitive2D& rHatchCandidate);
+ void processPolyPolygonGradientPrimitive2D(const primitive2d::PolyPolygonGradientPrimitive2D& rGradientCandidate);
+ void processPolyPolygonColorPrimitive2D(const primitive2d::PolyPolygonColorPrimitive2D& rPolygonCandidate);
+ void processMaskPrimitive2D(const primitive2d::MaskPrimitive2D& rMaskCandidate);
+ void processUnifiedTransparencePrimitive2D(const primitive2d::UnifiedTransparencePrimitive2D& rUniTransparenceCandidate);
+ void processTransparencePrimitive2D(const primitive2d::TransparencePrimitive2D& rTransparenceCandidate);
+ void processStructureTagPrimitive2D(const primitive2d::StructureTagPrimitive2D& rStructureTagCandidate);
+
/// Convert the fWidth to the same space as its coordinates.
double getTransformedLineWidth( double fWidth ) const;