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:
parent
06484b6946
commit
24b449b7fc
@ -215,7 +215,7 @@ static float GetSwapFloat( SvStream& rSt )
|
|||||||
|
|
||||||
/* EMF+ */
|
/* EMF+ */
|
||||||
void ReadRectangle (SvStream& s, float& x, float& y, float &width, float& height, sal_uInt32 flags = 0);
|
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);
|
void MapToDevice (double &x, double &y);
|
||||||
::basegfx::B2DPoint Map (double ix, double iy);
|
::basegfx::B2DPoint Map (double ix, double iy);
|
||||||
::basegfx::B2DSize MapSize (double iwidth, double iheight);
|
::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
|
if (unknown == 3) { // it probably means number of points defining destination rectangle
|
||||||
float x1, y1, x2, y2, x3, y3;
|
float x1, y1, x2, y2, x3, y3;
|
||||||
|
|
||||||
ReadPoint (rMF, x1, y1);
|
ReadPoint (rMF, x1, y1, flags);
|
||||||
ReadPoint (rMF, x2, y2);
|
ReadPoint (rMF, x2, y2, flags);
|
||||||
ReadPoint (rMF, x3, y3);
|
ReadPoint (rMF, x3, y3, flags);
|
||||||
|
|
||||||
BitmapEx aBmp( image.graphic.GetBitmapEx () );
|
BitmapEx aBmp( image.graphic.GetBitmapEx () );
|
||||||
const Rectangle aCropRect (::vcl::unotools::pointFromB2DPoint (Map (sx, sy)),
|
const Rectangle aCropRect (::vcl::unotools::pointFromB2DPoint (Map (sx, sy)),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user