hwpfilter/source/hwpreader.cxx | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-)
New commits: commit 6821d3ea7af00edc9e403581b029cf164dae4899 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed Mar 9 09:15:59 2022 +0000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Mar 9 12:00:59 2022 +0100 ofz#45385 Integer-overflow Change-Id: If65451a787c5709d792f9972e75e353b9b09f2ea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131233 Tested-by: Caolán McNamara <caol...@redhat.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/hwpfilter/source/hwpreader.cxx b/hwpfilter/source/hwpreader.cxx index c0feb4f5b61d..0db70d2aa685 100644 --- a/hwpfilter/source/hwpreader.cxx +++ b/hwpfilter/source/hwpreader.cxx @@ -28,6 +28,7 @@ #include <osl/diagnose.h> #include <tools/stream.hxx> #include <basegfx/numeric/ftools.hxx> +#include <basegfx/point/b2dpoint.hxx> #include "fontmap.hxx" #include "formula.h" @@ -3907,28 +3908,28 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) int i; ZZParall *pal = &drawobj->property.parall; - ZZPoint pt[3], r_pt[3]; + basegfx::B2DPoint pt[3], r_pt[3]; for(i = 0 ; i < 3 ; i++ ){ - pt[i].x = pal->pt[i].x - drawobj->property.rot_originx; + pt[i].setX(pal->pt[i].x - drawobj->property.rot_originx); /* Convert to a physical coordinate */ - pt[i].y = -(pal->pt[i].y - drawobj->property.rot_originy); + pt[i].setY(-(pal->pt[i].y - drawobj->property.rot_originy)); } - double rotate, skewX ; + double skewX; /* 2 - rotation angle calculation */ - rotate = atan2( pt[1].y - pt[0].y, pt[1].x - pt[0].x ); + double rotate = atan2(pt[1].getY() - pt[0].getY(), pt[1].getX() - pt[0].getX()); for( i = 0 ; i < 3 ; i++){ - r_pt[i].x = static_cast<int>(pt[i].x * cos(-rotate) - pt[i].y * sin(-rotate)); - r_pt[i].y = static_cast<int>(pt[i].y * cos(-rotate) + pt[i].x * sin(-rotate)); + r_pt[i].setX(pt[i].getX() * cos(-rotate) - pt[i].getY() * sin(-rotate)); + r_pt[i].setY(pt[i].getY() * cos(-rotate) + pt[i].getX() * sin(-rotate)); } /* 4 - Calculation of reflex angle */ - if( r_pt[2].y == r_pt[1].y ) + if (r_pt[2].getY() == r_pt[1].getY()) skewX = 0; else - skewX = atan(static_cast<double>(r_pt[2].x - r_pt[1].x )/( r_pt[2].y - r_pt[1].y )); + skewX = atan((r_pt[2].getX() - r_pt[1].getX()) / (r_pt[2].getY() - r_pt[1].getY())); if( skewX >= M_PI_2 ) skewX -= M_PI; if( skewX <= -M_PI_2 ) @@ -3955,8 +3956,8 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) bIsRotate = true; } if( bIsRotate ){ - drawobj->extent.w = static_cast<int>(std::hypot(pt[1].x-pt[0].x, pt[1].y-pt[0].y)); - drawobj->extent.h = static_cast<int>(std::hypot(pt[2].x-pt[1].x, pt[2].y-pt[1].y)); + drawobj->extent.w = static_cast<int>(std::hypot(pt[1].getX() - pt[0].getX(), pt[1].getY() - pt[0].getY())); + drawobj->extent.h = static_cast<int>(std::hypot(pt[2].getX() - pt[1].getX(), pt[2].getY() - pt[1].getY())); mxList->addAttribute("draw:transform", sXML_CDATA, trans); } }