diff --git a/rtengine/curves.h b/rtengine/curves.h index 348772075..cd4384bb4 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -994,8 +994,9 @@ inline void LuminanceToneCurve::Apply(float &r, float &g, float &b) const assert (lutToneCurve); float currLuminance = r * 0.2126729f + g * 0.7151521f + b * 0.0721750f; - float newLuminance = lutToneCurve[currLuminance]; - float coef = newLuminance / currLuminance; + const float newLuminance = lutToneCurve[currLuminance]; + currLuminance = currLuminance == 0.f ? 0.00001f : currLuminance; + const float coef = newLuminance / currLuminance; r = LIM(r * coef, 0.f, 65535.f); g = LIM(g * coef, 0.f, 65535.f); b = LIM(b * coef, 0.f, 65535.f); diff --git a/rtengine/rt_math.h b/rtengine/rt_math.h index e1c01a94f..6e1138476 100644 --- a/rtengine/rt_math.h +++ b/rtengine/rt_math.h @@ -42,7 +42,7 @@ constexpr const T& min(const T& a) template constexpr const T& min(const T& a, const T& b) { - return a < b ? a : b; + return b < a ? b : a; } template