summaryrefslogtreecommitdiff
path: root/vcl/headless
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-07-10 09:48:28 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-07-10 12:39:37 +0200
commit804cd2bd56295c5cb039b55ac7ca880c17399bad (patch)
treee511b34a9e74b81cf378cb3e7bd78533474b6876 /vcl/headless
parent7e73c033a128403bdeeb8be323e43ba2c7c8f8b4 (diff)
loplugin:useuniqueptr in vcl
Change-Id: Ieece2f9728755a8ae91275535eaa39319eea274e Reviewed-on: https://gerrit.libreoffice.org/39740 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl/headless')
-rw-r--r--vcl/headless/svpgdi.cxx21
1 files changed, 10 insertions, 11 deletions
diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx
index c694fc0c7161..f72797cd5835 100644
--- a/vcl/headless/svpgdi.cxx
+++ b/vcl/headless/svpgdi.cxx
@@ -171,16 +171,16 @@ namespace
// the alpha values need to be inverted for Cairo
// so big stupid copy and invert here
const int nImageSize = pMaskBuf->mnHeight * pMaskBuf->mnScanlineSize;
- pAlphaBits = new unsigned char[nImageSize];
- memcpy(pAlphaBits, pMaskBuf->mpBits, nImageSize);
+ pAlphaBits.reset( new unsigned char[nImageSize] );
+ memcpy(pAlphaBits.get(), pMaskBuf->mpBits, nImageSize);
// TODO: make upper layers use standard alpha
- sal_uInt32* pLDst = reinterpret_cast<sal_uInt32*>(pAlphaBits);
+ sal_uInt32* pLDst = reinterpret_cast<sal_uInt32*>(pAlphaBits.get());
for( int i = nImageSize/sizeof(sal_uInt32); --i >= 0; ++pLDst )
*pLDst = ~*pLDst;
- assert(reinterpret_cast<unsigned char*>(pLDst) == pAlphaBits+nImageSize);
+ assert(reinterpret_cast<unsigned char*>(pLDst) == pAlphaBits.get()+nImageSize);
- mask = cairo_image_surface_create_for_data(pAlphaBits,
+ mask = cairo_image_surface_create_for_data(pAlphaBits.get(),
CAIRO_FORMAT_A8,
pMaskBuf->mnWidth, pMaskBuf->mnHeight,
pMaskBuf->mnScanlineSize);
@@ -190,15 +190,15 @@ namespace
// the alpha values need to be inverted for Cairo
// so big stupid copy and invert here
const int nImageSize = pMaskBuf->mnHeight * pMaskBuf->mnScanlineSize;
- pAlphaBits = new unsigned char[nImageSize];
- memcpy(pAlphaBits, pMaskBuf->mpBits, nImageSize);
+ pAlphaBits.reset( new unsigned char[nImageSize] );
+ memcpy(pAlphaBits.get(), pMaskBuf->mpBits, nImageSize);
// TODO: make upper layers use standard alpha
- unsigned char* pDst = pAlphaBits;
+ unsigned char* pDst = pAlphaBits.get();
for (int i = nImageSize; --i >= 0; ++pDst)
*pDst = ~*pDst;
- mask = cairo_image_surface_create_for_data(pAlphaBits,
+ mask = cairo_image_surface_create_for_data(pAlphaBits.get(),
CAIRO_FORMAT_A1,
pMaskBuf->mnWidth, pMaskBuf->mnHeight,
pMaskBuf->mnScanlineSize);
@@ -207,7 +207,6 @@ namespace
~MaskHelper()
{
cairo_surface_destroy(mask);
- delete[] pAlphaBits;
}
cairo_surface_t* getMask()
{
@@ -215,7 +214,7 @@ namespace
}
private:
cairo_surface_t *mask;
- unsigned char* pAlphaBits;
+ std::unique_ptr<unsigned char[]> pAlphaBits;
MaskHelper(const MaskHelper&) = delete;
MaskHelper& operator=(const MaskHelper&) = delete;