Segfault in before/after mode, fixes #5529
This commit is contained in:
parent
f041573d4d
commit
4c99d3b78b
@ -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
|
//box blur using rowbuffers and linebuffers instead of a full size buffer
|
||||||
|
|
||||||
|
radius = rtengine::min(radius, W - 1, H - 1);
|
||||||
if (radius == 0) {
|
if (radius == 0) {
|
||||||
if (src != dst) {
|
if (src != dst) {
|
||||||
#ifdef _OPENMP
|
#ifdef _OPENMP
|
||||||
|
@ -272,7 +272,7 @@ template<typename T> void wavelet_level<T>::SynthesisFilterHaarVertical (const T
|
|||||||
#pragma omp for nowait
|
#pragma omp for nowait
|
||||||
#endif
|
#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++) {
|
for(int j = 0; j < width; j++) {
|
||||||
dst[width * i + j] = (srcLo[i * width + j] + srcHi[i * width + j]);
|
dst[width * i + j] = (srcLo[i * width + j] + srcHi[i * width + j]);
|
||||||
|
@ -1195,7 +1195,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const
|
|||||||
b = 327.68f * Chprov * sincosv.x; //aply Munsell
|
b = 327.68f * Chprov * sincosv.x; //aply Munsell
|
||||||
} else {//general case
|
} else {//general case
|
||||||
L = labco->L[i1][j1];
|
L = labco->L[i1][j1];
|
||||||
const float Lin = labco->L[i1][j1];
|
const float Lin = std::max(0.f, L);
|
||||||
|
|
||||||
if(wavclCurve && cp.finena) {
|
if(wavclCurve && cp.finena) {
|
||||||
labco->L[i1][j1] = (0.5f * Lin + 1.5f * wavclCurve[Lin]) / 2.f; //apply contrast curve
|
labco->L[i1][j1] = (0.5f * Lin + 1.5f * wavclCurve[Lin]) / 2.f; //apply contrast curve
|
||||||
|
Loading…
x
Reference in New Issue
Block a user