diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-04-23 13:30:32 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-04-24 08:22:20 +0200 |
commit | 4acc2daacbb83869f5e576427b3743ddf80a5578 (patch) | |
tree | 1e3c8f4d3f3e8b397cdc0100273845d54597bbfe | |
parent | c2f5a026ca643b104bf88cfb0429de1ea81d38dc (diff) |
loplugin:useuniqueptr in PNGWriterImpl
Change-Id: Iad753bfeeba7b0b0c1069bbb1411e41612d72f67
Reviewed-on: https://gerrit.libreoffice.org/53352
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | vcl/source/gdi/pngwrite.cxx | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/vcl/source/gdi/pngwrite.cxx b/vcl/source/gdi/pngwrite.cxx index b5c6178eb1bd..d40e68a137b0 100644 --- a/vcl/source/gdi/pngwrite.cxx +++ b/vcl/source/gdi/pngwrite.cxx @@ -70,9 +70,9 @@ private: BitmapReadAccess* mpMaskAccess; ZCodec mpZCodec; - sal_uInt8* mpDeflateInBuf; // as big as the size of a scanline + alphachannel + 1 - sal_uInt8* mpPreviousScan; // as big as mpDeflateInBuf - sal_uInt8* mpCurrentScan; + std::unique_ptr<sal_uInt8[]> mpDeflateInBuf; // as big as the size of a scanline + alphachannel + 1 + std::unique_ptr<sal_uInt8[]> mpPreviousScan; // as big as mpDeflateInBuf + std::unique_ptr<sal_uInt8[]> mpCurrentScan; sal_uLong mnDeflateInSize; sal_uLong mnWidth; @@ -379,12 +379,12 @@ void PNGWriterImpl::ImplWriteIDAT() mnDeflateInSize = mnBBP * mnWidth + 1; - mpDeflateInBuf = new sal_uInt8[mnDeflateInSize]; + mpDeflateInBuf.reset(new sal_uInt8[mnDeflateInSize]); if (mnFilterType) // using filter type 4 we need memory for the scanline 3 times { - mpPreviousScan = new sal_uInt8[mnDeflateInSize]; - mpCurrentScan = new sal_uInt8[mnDeflateInSize]; + mpPreviousScan.reset(new sal_uInt8[mnDeflateInSize]); + mpCurrentScan.reset(new sal_uInt8[mnDeflateInSize]); ImplClearFirstScanline(); } mpZCodec.BeginCompression(mnCompLevel, true); @@ -394,7 +394,7 @@ void PNGWriterImpl::ImplWriteIDAT() { for (sal_uLong nY = 0; nY < mnHeight; nY++) { - mpZCodec.Write(aOStm, mpDeflateInBuf, ImplGetFilter(nY)); + mpZCodec.Write(aOStm, mpDeflateInBuf.get(), ImplGetFilter(nY)); } } else @@ -403,13 +403,13 @@ void PNGWriterImpl::ImplWriteIDAT() sal_uLong nY; for (nY = 0; nY < mnHeight; nY += 8) // pass 1 { - mpZCodec.Write(aOStm, mpDeflateInBuf, ImplGetFilter(nY, 0, 8)); + mpZCodec.Write(aOStm, mpDeflateInBuf.get(), ImplGetFilter(nY, 0, 8)); } ImplClearFirstScanline(); for (nY = 0; nY < mnHeight; nY += 8) // pass 2 { - mpZCodec.Write(aOStm, mpDeflateInBuf, ImplGetFilter(nY, 4, 8)); + mpZCodec.Write(aOStm, mpDeflateInBuf.get(), ImplGetFilter(nY, 4, 8)); } ImplClearFirstScanline(); @@ -417,14 +417,14 @@ void PNGWriterImpl::ImplWriteIDAT() { for (nY = 4; nY < mnHeight; nY += 8) { - mpZCodec.Write(aOStm, mpDeflateInBuf, ImplGetFilter(nY, 0, 4)); + mpZCodec.Write(aOStm, mpDeflateInBuf.get(), ImplGetFilter(nY, 0, 4)); } ImplClearFirstScanline(); } for (nY = 0; nY < mnHeight; nY += 4) // pass 4 { - mpZCodec.Write(aOStm, mpDeflateInBuf, ImplGetFilter(nY, 2, 4)); + mpZCodec.Write(aOStm, mpDeflateInBuf.get(), ImplGetFilter(nY, 2, 4)); } ImplClearFirstScanline(); @@ -432,14 +432,14 @@ void PNGWriterImpl::ImplWriteIDAT() { for (nY = 2; nY < mnHeight; nY += 4) { - mpZCodec.Write(aOStm, mpDeflateInBuf, ImplGetFilter(nY, 0, 2)); + mpZCodec.Write(aOStm, mpDeflateInBuf.get(), ImplGetFilter(nY, 0, 2)); } ImplClearFirstScanline(); } for (nY = 0; nY < mnHeight; nY += 2) // pass 6 { - mpZCodec.Write(aOStm, mpDeflateInBuf, ImplGetFilter(nY, 1, 2)); + mpZCodec.Write(aOStm, mpDeflateInBuf.get(), ImplGetFilter(nY, 1, 2)); } ImplClearFirstScanline(); @@ -447,7 +447,7 @@ void PNGWriterImpl::ImplWriteIDAT() { for (nY = 1; nY < mnHeight; nY += 2) { - mpZCodec.Write(aOStm, mpDeflateInBuf, ImplGetFilter (nY)); + mpZCodec.Write(aOStm, mpDeflateInBuf.get(), ImplGetFilter (nY)); } } } @@ -456,10 +456,10 @@ void PNGWriterImpl::ImplWriteIDAT() if (mnFilterType) // using filter type 4 we need memory for the scanline 3 times { - delete[] mpCurrentScan; - delete[] mpPreviousScan; + mpCurrentScan.reset(); + mpPreviousScan.reset(); } - delete[] mpDeflateInBuf; + mpDeflateInBuf.reset(); sal_uInt32 nIDATSize = aOStm.Tell(); sal_uInt32 nBytes, nBytesToWrite = nIDATSize; @@ -481,9 +481,9 @@ sal_uLong PNGWriterImpl::ImplGetFilter (sal_uLong nY, sal_uLong nXStart, sal_uLo sal_uInt8* pDest; if (mnFilterType) - pDest = mpCurrentScan; + pDest = mpCurrentScan.get(); else - pDest = mpDeflateInBuf; + pDest = mpDeflateInBuf.get(); if (nXStart < mnWidth) { @@ -596,20 +596,20 @@ sal_uLong PNGWriterImpl::ImplGetFilter (sal_uLong nY, sal_uLong nXStart, sal_uLo // filter type4 ( PAETH ) will be used only for 24bit graphics if (mnFilterType) { - mnDeflateInSize = pDest - mpCurrentScan; - pDest = mpDeflateInBuf; + mnDeflateInSize = pDest - mpCurrentScan.get(); + pDest = mpDeflateInBuf.get(); *pDest++ = 4; // filter type - sal_uInt8* p1 = mpCurrentScan + 1; // Current Pixel + sal_uInt8* p1 = mpCurrentScan.get() + 1; // Current Pixel sal_uInt8* p2 = p1 - mnBBP; // left pixel - sal_uInt8* p3 = mpPreviousScan; // upper pixel + sal_uInt8* p3 = mpPreviousScan.get(); // upper pixel sal_uInt8* p4 = p3 - mnBBP; // upperleft Pixel; - while (pDest < mpDeflateInBuf + mnDeflateInSize) + while (pDest < mpDeflateInBuf.get() + mnDeflateInSize) { sal_uLong nb = *p3++; sal_uLong na, nc; - if (p2 >= mpCurrentScan + 1) + if (p2 >= mpCurrentScan.get() + 1) { na = *p2; nc = *p4; @@ -648,7 +648,7 @@ sal_uLong PNGWriterImpl::ImplGetFilter (sal_uLong nY, sal_uLong nXStart, sal_uLo } else { - mnDeflateInSize = pDest - mpDeflateInBuf; + mnDeflateInSize = pDest - mpDeflateInBuf.get(); } return mnDeflateInSize; } @@ -656,7 +656,7 @@ sal_uLong PNGWriterImpl::ImplGetFilter (sal_uLong nY, sal_uLong nXStart, sal_uLo void PNGWriterImpl::ImplClearFirstScanline() { if (mnFilterType) - memset(mpPreviousScan, 0, mnDeflateInSize); + memset(mpPreviousScan.get(), 0, mnDeflateInSize); } void PNGWriterImpl::ImplOpenChunk (sal_uLong nChunkType) |