diff --git a/rtengine/demosaic_algos.cc b/rtengine/demosaic_algos.cc index 9aedf00dc..4bd9f53dd 100644 --- a/rtengine/demosaic_algos.cc +++ b/rtengine/demosaic_algos.cc @@ -501,11 +501,7 @@ void RawImageSource::hphd_demosaic () { plistener->setProgress (0.0); } - float** hpmap = new float*[H]; - for (int i=0; i(W,H, true); #ifdef _OPENMP #pragma omp parallel diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 23c4fcc36..41c482eaa 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -26,21 +26,26 @@ namespace rtengine { -template void freeArray (T** a, int H) { - //for (int i=0; i T** allocArray (int W, int H) { +// these two functions "simulate" and jagged array, but just use two allocs +template T** allocArray (int W, int H, bool initZero=false) { T** t = new T*[H]; t[0] = new T[H*W]; + + if (initZero) memset(t[0],0,sizeof(T)*W*H); + for (int i=1; i void freeArray (T** a, int H) { + + delete [] a[0]; + delete [] a; +} + template void freeArray2 (T** a, int H) { //for (int i=0; i #include #include -#include +#include "version.h" CacheImageData::CacheImageData () : md5(""), supported(false), format(FT_Invalid), rankOld(-1), inTrashOld(false), recentlySaved(false),