path: root/cppcanvas
diff options
authorMichael Stahl <>2012-03-09 15:35:36 +0100
committerMichael Stahl <>2012-03-09 15:40:00 +0100
commit24b449b7fcaaee20ef8feebfd64fc761535f77a8 (patch)
tree95f25147a473362272b3bd0bb6dc4a30ee1f1dfe /cppcanvas
parent06484b6946ac6a974c24af6624fb75bbe298c1e8 (diff)
cppcanvas: processEMFPlus: fix valgrind warning:
When reading EmfPlusRecordTypeDrawImagePoints, handle the variant where points are stored as 16-bit integers instead of floats correctly. Found via valgrind on loading bugdoc from fdo#42252.
Diffstat (limited to 'cppcanvas')
2 files changed, 4 insertions, 4 deletions
diff --git a/cppcanvas/source/inc/implrenderer.hxx b/cppcanvas/source/inc/implrenderer.hxx
index d41d50410fa2..034af027699c 100644
--- a/cppcanvas/source/inc/implrenderer.hxx
+++ b/cppcanvas/source/inc/implrenderer.hxx
@@ -215,7 +215,7 @@ static float GetSwapFloat( SvStream& rSt )
/* EMF+ */
void ReadRectangle (SvStream& s, float& x, float& y, float &width, float& height, sal_uInt32 flags = 0);
- void ReadPoint (SvStream& s, float& x, float& y, sal_uInt32 flags = 0);
+ void ReadPoint (SvStream& s, float& x, float& y, sal_uInt32 flags);
void MapToDevice (double &x, double &y);
::basegfx::B2DPoint Map (double ix, double iy);
::basegfx::B2DSize MapSize (double iwidth, double iheight);
diff --git a/cppcanvas/source/mtfrenderer/emfplus.cxx b/cppcanvas/source/mtfrenderer/emfplus.cxx
index 953a0c86467b..4c92728e57d7 100644
--- a/cppcanvas/source/mtfrenderer/emfplus.cxx
+++ b/cppcanvas/source/mtfrenderer/emfplus.cxx
@@ -1406,9 +1406,9 @@ namespace cppcanvas
if (unknown == 3) { // it probably means number of points defining destination rectangle
float x1, y1, x2, y2, x3, y3;
- ReadPoint (rMF, x1, y1);
- ReadPoint (rMF, x2, y2);
- ReadPoint (rMF, x3, y3);
+ ReadPoint (rMF, x1, y1, flags);
+ ReadPoint (rMF, x2, y2, flags);
+ ReadPoint (rMF, x3, y3, flags);
BitmapEx aBmp( image.graphic.GetBitmapEx () );
const Rectangle aCropRect (::vcl::unotools::pointFromB2DPoint (Map (sx, sy)),