vcl/source/filter/ipcd/ipcd.cxx | 87 ++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 51 deletions(-)
New commits: commit 58da51715425d781b5b8b9b9e412c98daf80b601 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Sep 2 09:21:11 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Thu Sep 2 18:18:58 2021 +0200 convert malloc/free to std::vector Change-Id: Icc9bb8cd6851ee027d5a5469c78d26cf6a943708 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121501 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/source/filter/ipcd/ipcd.cxx b/vcl/source/filter/ipcd/ipcd.cxx index 1ce59f20c1bb..220ac6111012 100644 --- a/vcl/source/filter/ipcd/ipcd.cxx +++ b/vcl/source/filter/ipcd/ipcd.cxx @@ -193,33 +193,27 @@ void PCDReader::ReadImage() sal_uInt32 nH2 = nHeight>>1; // luminance for each pixel of the 1st row of the current pair of rows - sal_uInt8* pL0 = static_cast<sal_uInt8*>(std::malloc( nWidth )); + std::vector<sal_uInt8> aL0(nWidth); // luminance for each pixel of the 2nd row of the current pair of rows - sal_uInt8* pL1 = static_cast<sal_uInt8*>(std::malloc( nWidth )); + std::vector<sal_uInt8> aL1(nWidth); // blue chrominance for each 2x2 pixel of the current pair of rows - sal_uInt8* pCb = static_cast<sal_uInt8*>(std::malloc( nW2+1 )); + std::vector<sal_uInt8> aCb(nW2 + 1); // red chrominance for each 2x2 pixel of the current pair of rows - sal_uInt8* pCr = static_cast<sal_uInt8*>(std::malloc( nW2+1 )); + std::vector<sal_uInt8> aCr(nW2 + 1); // like above, but for the next pair of rows - sal_uInt8* pL0N = static_cast<sal_uInt8*>(std::malloc( nWidth )); - sal_uInt8* pL1N = static_cast<sal_uInt8*>(std::malloc( nWidth )); - sal_uInt8* pCbN = static_cast<sal_uInt8*>(std::malloc( nW2+1 )); - sal_uInt8* pCrN = static_cast<sal_uInt8*>(std::malloc( nW2+1 )); - - if ( pL0 == nullptr || pL1 == nullptr || pCb == nullptr || pCr == nullptr || - pL0N == nullptr || pL1N == nullptr || pCbN == nullptr || pCrN == nullptr) - { - std::free(static_cast<void*>(pL0) ); - std::free(static_cast<void*>(pL1) ); - std::free(static_cast<void*>(pCb) ); - std::free(static_cast<void*>(pCr) ); - std::free(static_cast<void*>(pL0N)); - std::free(static_cast<void*>(pL1N)); - std::free(static_cast<void*>(pCbN)); - std::free(static_cast<void*>(pCrN)); - bStatus = false; - return; - } + std::vector<sal_uInt8> aL0N(nWidth); + std::vector<sal_uInt8> aL1N(nWidth); + std::vector<sal_uInt8> aCbN(nW2 + 1); + std::vector<sal_uInt8> aCrN(nW2 + 1); + + sal_uInt8* pL0 = aL0.data(); + sal_uInt8* pL1 = aL1.data(); + sal_uInt8* pCb = aCb.data(); + sal_uInt8* pCr = aCr.data(); + sal_uInt8* pL0N = aL0N.data(); + sal_uInt8* pL1N = aL1N.data(); + sal_uInt8* pCbN = aCbN.data(); + sal_uInt8* pCrN = aCrN.data(); m_rPCD.Seek( nImagePos ); @@ -345,14 +339,6 @@ void PCDReader::ReadImage() if ( !bStatus ) break; } - std::free(static_cast<void*>(pL0) ); - std::free(static_cast<void*>(pL1) ); - std::free(static_cast<void*>(pCb) ); - std::free(static_cast<void*>(pCr) ); - std::free(static_cast<void*>(pL0N)); - std::free(static_cast<void*>(pL1N)); - std::free(static_cast<void*>(pCbN)); - std::free(static_cast<void*>(pCrN)); } //================== GraphicImport - the exported Function ================ commit 65ca2be823ce29d506e9c2cb5a42b611234194ac Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Sep 2 09:16:14 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Thu Sep 2 18:18:44 2021 +0200 move variables to where they're used Change-Id: Iaf7e7bf1a58aedb0ad6852812f969fc7e6153a54 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121500 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/source/filter/ipcd/ipcd.cxx b/vcl/source/filter/ipcd/ipcd.cxx index dbe7eb12d5db..1ce59f20c1bb 100644 --- a/vcl/source/filter/ipcd/ipcd.cxx +++ b/vcl/source/filter/ipcd/ipcd.cxx @@ -184,29 +184,27 @@ void PCDReader::ReadOrientation() void PCDReader::ReadImage() { - sal_uInt32 nx,ny,nW2,nH2,nYPair,ndy,nXPair; - tools::Long nL,nCb,nCr,nRed,nGreen,nBlue; - sal_uInt8 * pt; - sal_uInt8 * pL0; // luminance for each pixel of the 1st row of the current pair of rows - sal_uInt8 * pL1; // luminance for each pixel of the 2nd row of the current pair of rows - sal_uInt8 * pCb; // blue chrominance for each 2x2 pixel of the current pair of rows - sal_uInt8 * pCr; // red chrominance for each 2x2 pixel of the current pair of rows - sal_uInt8 * pL0N, * pL1N, * pCbN, * pCrN; // like above, but for the next pair of rows + tools::Long nL,nCb,nCr; if ( !bStatus ) return; - nW2=nWidth>>1; - nH2=nHeight>>1; - - pL0 =static_cast<sal_uInt8*>(std::malloc( nWidth )); - pL1 =static_cast<sal_uInt8*>(std::malloc( nWidth )); - pCb =static_cast<sal_uInt8*>(std::malloc( nW2+1 )); - pCr =static_cast<sal_uInt8*>(std::malloc( nW2+1 )); - pL0N=static_cast<sal_uInt8*>(std::malloc( nWidth )); - pL1N=static_cast<sal_uInt8*>(std::malloc( nWidth )); - pCbN=static_cast<sal_uInt8*>(std::malloc( nW2+1 )); - pCrN=static_cast<sal_uInt8*>(std::malloc( nW2+1 )); + sal_uInt32 nW2 = nWidth>>1; + sal_uInt32 nH2 = nHeight>>1; + + // luminance for each pixel of the 1st row of the current pair of rows + sal_uInt8* pL0 = static_cast<sal_uInt8*>(std::malloc( nWidth )); + // luminance for each pixel of the 2nd row of the current pair of rows + sal_uInt8* pL1 = static_cast<sal_uInt8*>(std::malloc( nWidth )); + // blue chrominance for each 2x2 pixel of the current pair of rows + sal_uInt8* pCb = static_cast<sal_uInt8*>(std::malloc( nW2+1 )); + // red chrominance for each 2x2 pixel of the current pair of rows + sal_uInt8* pCr = static_cast<sal_uInt8*>(std::malloc( nW2+1 )); + // like above, but for the next pair of rows + sal_uInt8* pL0N = static_cast<sal_uInt8*>(std::malloc( nWidth )); + sal_uInt8* pL1N = static_cast<sal_uInt8*>(std::malloc( nWidth )); + sal_uInt8* pCbN = static_cast<sal_uInt8*>(std::malloc( nW2+1 )); + sal_uInt8* pCrN = static_cast<sal_uInt8*>(std::malloc( nW2+1 )); if ( pL0 == nullptr || pL1 == nullptr || pCb == nullptr || pCr == nullptr || pL0N == nullptr || pL1N == nullptr || pCbN == nullptr || pCrN == nullptr) @@ -237,8 +235,9 @@ void PCDReader::ReadImage() pCbN[ nW2 ] = pCbN[ nW2 - 1 ]; pCrN[ nW2 ] = pCrN[ nW2 - 1 ]; - for ( nYPair = 0; nYPair < nH2; nYPair++ ) + for (sal_uInt32 nYPair = 0; nYPair < nH2; ++nYPair) { + sal_uInt8 * pt; // current pair of rows := next pair of rows: pt=pL0; pL0=pL0N; pL0N=pt; pt=pL1; pL1=pL1N; pL1N=pt; @@ -257,7 +256,7 @@ void PCDReader::ReadImage() } else { - for ( nXPair = 0; nXPair < nW2; nXPair++ ) + for (sal_uInt32 nXPair = 0; nXPair < nW2; ++nXPair) { pCbN[ nXPair ] = pCb[ nXPair ]; pCrN[ nXPair ] = pCr[ nXPair ]; @@ -265,15 +264,15 @@ void PCDReader::ReadImage() } // loop through both rows of the pair of rows: - for ( ndy = 0; ndy < 2; ndy++ ) + for (sal_uInt32 ndy = 0; ndy < 2; ++ndy) { - ny = ( nYPair << 1 ) + ndy; + sal_uInt32 ny = ( nYPair << 1 ) + ndy; // loop through X: - for ( nx = 0; nx < nWidth; nx++ ) + for (sal_uInt32 nx = 0; nx < nWidth; ++nx) { // get/calculate nL,nCb,nCr for the pixel nx,ny: - nXPair = nx >> 1; + sal_uInt32 nXPair = nx >> 1; if ( ndy == 0 ) { nL = static_cast<tools::Long>(pL0[ nx ]); @@ -307,17 +306,17 @@ void PCDReader::ReadImage() nL *= 89024; nCb -= 156; nCr -= 137; - nRed = ( nL + nCr * 119374 + 0x8000 ) >> 16; + tools::Long nRed = ( nL + nCr * 119374 + 0x8000 ) >> 16; if ( nRed < 0 ) nRed = 0; if ( nRed > 255) nRed = 255; - nGreen = ( nL - nCb * 28198 - nCr * 60761 + 0x8000 ) >> 16; + tools::Long nGreen = ( nL - nCb * 28198 - nCr * 60761 + 0x8000 ) >> 16; if ( nGreen < 0 ) nGreen = 0; if ( nGreen > 255 ) nGreen = 255; - nBlue = ( nL + nCb * 145352 + 0x8000 ) >> 16; + tools::Long nBlue = ( nL + nCb * 145352 + 0x8000 ) >> 16; if ( nBlue < 0 ) nBlue = 0; if ( nBlue > 255 )