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.
This commit is contained in:
Michael Stahl 2012-03-09 15:35:36 +01:00
parent 06484b6946
commit 24b449b7fc
2 changed files with 4 additions and 4 deletions

View File

@ -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);

View File

@ -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)),