From 5b21deda9324439908043e4a08966c8f4e5dd5b5 Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Wed, 28 Sep 2016 18:02:12 +0000 Subject: [PATCH] #1234 Corrections to r4577 --- src/pgfimage.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/pgfimage.cpp b/src/pgfimage.cpp index 0d04cd30..358ab588 100644 --- a/src/pgfimage.cpp +++ b/src/pgfimage.cpp @@ -107,11 +107,12 @@ namespace Exiv2 { { uint32_t v; char* p = (char*) &v; - p[0] = buf.pData_[offset]; - p[1] = buf.pData_[offset+1]; - p[2] = buf.pData_[offset+2]; - p[3] = buf.pData_[offset+3]; - return byteSwap(v,bSwap); + int i; + for ( i = 0 ; i < 4 ; i++ ) p[i] = buf.pData_[offset+i]; + uint32_t result = byteSwap(v,bSwap); + p = (char*) &result; + for ( i = 0 ; i < 4 ; i++ ) buf.pData_[offset+i] = p[i]; + return result; } PgfImage::PgfImage(BasicIo::AutoPtr io, bool create) @@ -323,7 +324,7 @@ namespace Exiv2 { DataBuf work(8); // don't disturb the binary data - doWriteMetadata reuses it memcpy (work.pData_,header.pData_,8); width = byteSwap(work,0,bSwap_); - height = byteSwap(header,4,bSwap_); + height = byteSwap(work,4,bSwap_); /* NOTE: properties not yet used byte nLevels = buffer.pData_[8];