From 9b0a74a4e0fe0c784da62a730d10e8c75e4c7bad Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Tue, 16 Jan 2018 14:09:06 +0200 Subject: loplugin:useuniqueptr in ZBufferProcessor3D Change-Id: I73005afdaf20efe15321a2a073beb3ae4f7a63e3 --- drawinglayer/source/processor3d/zbufferprocessor3d.cxx | 13 ++++++------- include/drawinglayer/processor3d/zbufferprocessor3d.hxx | 5 +++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drawinglayer/source/processor3d/zbufferprocessor3d.cxx b/drawinglayer/source/processor3d/zbufferprocessor3d.cxx index ba12a85ecf12..ab25e329a8b8 100644 --- a/drawinglayer/source/processor3d/zbufferprocessor3d.cxx +++ b/drawinglayer/source/processor3d/zbufferprocessor3d.cxx @@ -430,7 +430,7 @@ namespace drawinglayer // back to front if(!mpRasterPrimitive3Ds) { - const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds = new std::vector< RasterPrimitive3D >; + const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds.reset( new std::vector< RasterPrimitive3D > ); } mpRasterPrimitive3Ds->push_back(RasterPrimitive3D( @@ -494,7 +494,7 @@ namespace drawinglayer // back to front if(!mpRasterPrimitive3Ds) { - const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds = new std::vector< RasterPrimitive3D >; + const_cast< ZBufferProcessor3D* >(this)->mpRasterPrimitive3Ds.reset( new std::vector< RasterPrimitive3D > ); } mpRasterPrimitive3Ds->push_back(RasterPrimitive3D( @@ -598,18 +598,18 @@ namespace drawinglayer maRasterRange.expand(basegfx::B2DPoint(mrBZPixelRaster.getWidth(), nStopLine)); // create the raster converter - mpZBufferRasterConverter3D = new ZBufferRasterConverter3D(mrBZPixelRaster, *this); + mpZBufferRasterConverter3D.reset( new ZBufferRasterConverter3D(mrBZPixelRaster, *this) ); } ZBufferProcessor3D::~ZBufferProcessor3D() { - delete mpZBufferRasterConverter3D; + mpZBufferRasterConverter3D.reset(); if(mpRasterPrimitive3Ds) { OSL_FAIL("ZBufferProcessor3D: destructed, but there are unrendered transparent geometries. Use ZBufferProcessor3D::finish() to render these (!)"); - delete mpRasterPrimitive3Ds; } + mpRasterPrimitive3Ds.reset(); } void ZBufferProcessor3D::finish() @@ -653,8 +653,7 @@ namespace drawinglayer // delete them to signal the destructor that all is done and // to allow asserting there - delete mpRasterPrimitive3Ds; - mpRasterPrimitive3Ds = nullptr; + mpRasterPrimitive3Ds.reset(); } } } // end of namespace processor3d diff --git a/include/drawinglayer/processor3d/zbufferprocessor3d.hxx b/include/drawinglayer/processor3d/zbufferprocessor3d.hxx index 9c1109eecaac..173c0415c29c 100644 --- a/include/drawinglayer/processor3d/zbufferprocessor3d.hxx +++ b/include/drawinglayer/processor3d/zbufferprocessor3d.hxx @@ -24,6 +24,7 @@ #include #include +#include namespace basegfx { class BZPixelRaster; @@ -62,7 +63,7 @@ namespace drawinglayer basegfx::B3DHomMatrix maInvEyeToView; /// The raster converter for Z-Buffer - ZBufferRasterConverter3D* mpZBufferRasterConverter3D; + std::unique_ptr mpZBufferRasterConverter3D; /* AA value. Defines how many oversamples will be used in X and Y. Values 0, 1 will switch it off while e.g. 2 will use 2x2 pixels for each pixel to create @@ -72,7 +73,7 @@ namespace drawinglayer /* remembered RasterPrimitive3D's which need to be painted back to front for transparent 3D parts */ - std::vector< RasterPrimitive3D >* mpRasterPrimitive3Ds; + std::unique_ptr> mpRasterPrimitive3Ds; sal_uInt32 mnStartLine; sal_uInt32 mnStopLine; -- cgit