diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index 7f3da40ed..e70b7a152 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -1116,23 +1116,23 @@ BENCHFUN return; } - array2D* Lbuffer = nullptr; + std::unique_ptr> Lbuffer; if (!redCache) { - Lbuffer = new array2D(W, H); + Lbuffer.reset(new array2D(W, H)); } - array2D* YOldbuffer = nullptr; + std::unique_ptr> YOldbuffer; if (!greenCache) { - YOldbuffer = new array2D(W, H); + YOldbuffer.reset(new array2D(W, H)); } - array2D* YNewbuffer = nullptr; + std::unique_ptr> YNewbuffer; if (!blueCache) { - YNewbuffer = new array2D(W, H); + YNewbuffer.reset(new array2D(W, H)); } - array2D& L = Lbuffer ? *Lbuffer : red; - array2D& YOld = YOldbuffer ? * YOldbuffer : green; - array2D& YNew = YNewbuffer ? * YNewbuffer : blue; + array2D& L = Lbuffer.get() ? *Lbuffer.get() : red; + array2D& YOld = YOldbuffer.get() ? *YOldbuffer.get() : green; + array2D& YNew = YNewbuffer.get() ? *YNewbuffer.get() : blue; #ifdef _OPENMP #pragma omp parallel for schedule(dynamic, 16) @@ -1173,9 +1173,6 @@ BENCHFUN } } - delete Lbuffer; - delete YOldbuffer; - delete YNewbuffer; if (plistener) { plistener->setProgress(1.0); }