Segfault in before/after mode, fixes #5529

This commit is contained in:
Ingo Weyrich 2019-11-17 13:58:43 +01:00
parent f041573d4d
commit 4c99d3b78b
3 changed files with 3 additions and 2 deletions

View File

@ -33,6 +33,7 @@ void boxblur(float** src, float** dst, int radius, int W, int H, bool multiThrea
{
//box blur using rowbuffers and linebuffers instead of a full size buffer
radius = rtengine::min(radius, W - 1, H - 1);
if (radius == 0) {
if (src != dst) {
#ifdef _OPENMP

View File

@ -272,7 +272,7 @@ template<typename T> void wavelet_level<T>::SynthesisFilterHaarVertical (const T
#pragma omp for nowait
#endif
for(int i = 0; i < skip; i++)
for(int i = 0; i < std::min(skip, height); i++)
{
for(int j = 0; j < width; j++) {
dst[width * i + j] = (srcLo[i * width + j] + srcHi[i * width + j]);

View File

@ -1195,7 +1195,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const
b = 327.68f * Chprov * sincosv.x; //aply Munsell
} else {//general case
L = labco->L[i1][j1];
const float Lin = labco->L[i1][j1];
const float Lin = std::max(0.f, L);
if(wavclCurve && cp.finena) {
labco->L[i1][j1] = (0.5f * Lin + 1.5f * wavclCurve[Lin]) / 2.f; //apply contrast curve