Kaydet (Commit) 24b449b7 authored tarafından Michael Stahl's avatar Michael Stahl

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.
üst 06484b69
......@@ -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);
......
......@@ -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)),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment