From 24b449b7fcaaee20ef8feebfd64fc761535f77a8 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Fri, 9 Mar 2012 15:35:36 +0100 Subject: 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. --- cppcanvas/source/inc/implrenderer.hxx | 2 +- cppcanvas/source/mtfrenderer/emfplus.cxx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'cppcanvas') 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)), -- cgit