diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-07-13 08:33:50 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2015-08-06 12:56:12 +0200 |
commit | 709e90407666898b3328387c9f9793c3a2a6db8f (patch) | |
tree | f59340adb846f7c7b9f5ddf6c5fba8130235be41 /vcl | |
parent | f37b0d565cafae00f8a0e38c873ab176f4f01b7d (diff) |
emf: test for empty polygons
Change-Id: I3c8896230e3d48a37f4b8d702b0f673e44f45ba4
(cherry picked from commit 7df4d8544c6b12e31bcb81d9389d03ae7c11bfea)
Reviewed-on: https://gerrit.libreoffice.org/16973
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/qa/cppunit/graphicfilter/data/emf/fail/crash-2.emf | bin | 0 -> 3848 bytes | |||
-rw-r--r-- | vcl/source/filter/wmf/winmtf.cxx | 26 |
2 files changed, 15 insertions, 11 deletions
diff --git a/vcl/qa/cppunit/graphicfilter/data/emf/fail/crash-2.emf b/vcl/qa/cppunit/graphicfilter/data/emf/fail/crash-2.emf Binary files differnew file mode 100644 index 000000000000..6adabec8b31c --- /dev/null +++ b/vcl/qa/cppunit/graphicfilter/data/emf/fail/crash-2.emf diff --git a/vcl/source/filter/wmf/winmtf.cxx b/vcl/source/filter/wmf/winmtf.cxx index f14f9345ffc7..20e2b5c3a40f 100644 --- a/vcl/source/filter/wmf/winmtf.cxx +++ b/vcl/source/filter/wmf/winmtf.cxx @@ -1294,18 +1294,22 @@ void WinMtfOutput::DrawPolyLine( Polygon& rPolygon, bool bTo, bool bRecordPath ) { UpdateClipRegion(); - ImplMap( rPolygon ); - if ( bTo ) - { - rPolygon[ 0 ] = maActPos; - maActPos = rPolygon[ rPolygon.GetSize() - 1 ]; - } - if ( bRecordPath ) - aPathObj.AddPolyLine( rPolygon ); - else + sal_uInt16 nPoints = rPolygon.GetSize(); + if (nPoints >= 1) { - UpdateLineStyle(); - mpGDIMetaFile->AddAction( new MetaPolyLineAction( rPolygon, maLineStyle.aLineInfo ) ); + ImplMap( rPolygon ); + if ( bTo ) + { + rPolygon[ 0 ] = maActPos; + maActPos = rPolygon[ rPolygon.GetSize() - 1 ]; + } + if ( bRecordPath ) + aPathObj.AddPolyLine( rPolygon ); + else + { + UpdateLineStyle(); + mpGDIMetaFile->AddAction( new MetaPolyLineAction( rPolygon, maLineStyle.aLineInfo ) ); + } } } |