[Libreoffice-commits] core.git: emfio/inc emfio/source
Bartosz Kosiorek (via logerrit)
logerrit at kemper.freedesktop.org
Sat May 22 18:08:53 UTC 2021
emfio/inc/emfreader.hxx | 2 +-
emfio/source/reader/emfreader.cxx | 17 +++++------------
2 files changed, 6 insertions(+), 13 deletions(-)
New commits:
commit 4f4c5b43f0c69385aa2738cbac7f7c898af1972f
Author: Bartosz Kosiorek <gang65 at poczta.onet.pl>
AuthorDate: Sat May 22 19:19:12 2021 +0200
Commit: Bartosz Kosiorek <gang65 at poczta.onet.pl>
CommitDate: Sat May 22 20:08:11 2021 +0200
tdf#55007 EMF Allow negatives values for Start Point and End Point
With previous inplementation, the ARC, ARCTO, CHORD and PIE
records were get Start Point and End Point only with
positive values. It was causing display issues.
This patch fix that according to [MS-EMF] specification
Change-Id: Ie1d90a904e840674380b81af0dfe21260374587d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115994
Tested-by: Jenkins
Reviewed-by: Bartosz Kosiorek <gang65 at poczta.onet.pl>
diff --git a/emfio/inc/emfreader.hxx b/emfio/inc/emfreader.hxx
index e580835fc083..a09ad6fa2c20 100644
--- a/emfio/inc/emfreader.hxx
+++ b/emfio/inc/emfreader.hxx
@@ -27,7 +27,7 @@ namespace emfio
class EmfReader : public MtfTools
{
private:
- sal_Int32 mnRecordCount;
+ sal_uInt32 mnRecordCount;
bool mbRecordPath : 1;
bool mbEMFPlus : 1;
diff --git a/emfio/source/reader/emfreader.cxx b/emfio/source/reader/emfreader.cxx
index e9a3afec3f19..9a8784c7e631 100644
--- a/emfio/source/reader/emfreader.cxx
+++ b/emfio/source/reader/emfreader.cxx
@@ -1369,8 +1369,8 @@ namespace emfio
case EMR_ARCTO :
case EMR_CHORD :
{
- sal_uInt32 nStartX, nStartY, nEndX, nEndY;
- mpInputStream->ReadInt32( nX32 ).ReadInt32( nY32 ).ReadInt32( nx32 ).ReadInt32( ny32 ).ReadUInt32( nStartX ).ReadUInt32( nStartY ).ReadUInt32( nEndX ).ReadUInt32( nEndY );
+ sal_Int32 nStartX, nStartY, nEndX, nEndY;
+ mpInputStream->ReadInt32( nX32 ).ReadInt32( nY32 ).ReadInt32( nx32 ).ReadInt32( ny32 ).ReadInt32( nStartX ).ReadInt32( nStartY ).ReadInt32( nEndX ).ReadInt32( nEndY );
SAL_INFO( "emfio", "\t\t Bounds: " << nX32 << ":" << nY32 << ", " << nx32 << ":" << ny32 << ", Start: " << nStartX << ":" << nStartY << ", End: " << nEndX << ":" << nEndY );
tools::Polygon aPoly( ReadRectangle( nX32, nY32, nx32, ny32 ), Point( nStartX, nStartY ), Point( nEndX, nEndY ), PolyStyle::Arc );
if ( nRecType == EMR_CHORD )
@@ -1382,8 +1382,8 @@ namespace emfio
case EMR_PIE :
{
- sal_uInt32 nStartX, nStartY, nEndX, nEndY;
- mpInputStream->ReadInt32( nX32 ).ReadInt32( nY32 ).ReadInt32( nx32 ).ReadInt32( ny32 ).ReadUInt32( nStartX ).ReadUInt32( nStartY ).ReadUInt32( nEndX ).ReadUInt32( nEndY );
+ sal_Int32 nStartX, nStartY, nEndX, nEndY;
+ mpInputStream->ReadInt32( nX32 ).ReadInt32( nY32 ).ReadInt32( nx32 ).ReadInt32( ny32 ).ReadInt32( nStartX ).ReadInt32( nStartY ).ReadInt32( nEndX ).ReadInt32( nEndY );
tools::Polygon aPoly( ReadRectangle( nX32, nY32, nx32, ny32 ), Point( nStartX, nStartY ), Point( nEndX, nEndY ), PolyStyle::Pie );
DrawPolygon( aPoly, mbRecordPath );
}
@@ -2153,16 +2153,9 @@ namespace emfio
mnEndPos = nActualFileSize;
}
- mpInputStream->ReadInt32(mnRecordCount);
+ mpInputStream->ReadUInt32(mnRecordCount);
SAL_INFO("emfio", "\tRecords: " << mnRecordCount);
- if (mnRecordCount <= 0)
- {
- SAL_WARN("emfio", "EMF\t\tEMF Header object shows record counter as <= 0! This shouldn't "
- "be possible... indicator of possible file corruption?");
- return false;
- }
-
// the number of "handles", or graphics objects used in the metafile
sal_uInt16 nHandlesCount;
More information about the Libreoffice-commits
mailing list