diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-07-31 14:20:52 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-07-31 18:18:36 +0200 |
commit | 2a4b054b3685aaeca5bdcb2969bcfc25365421d9 (patch) | |
tree | 19dd2dfea163744e10395065898860236638f839 /drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx | |
parent | 4f13f8ddeebca1de9fd30f0aae71e3f84383656a (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.hxx | 42 |
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; |