From 9a7b47c23f676cdfc80758ee45a4bc0cada83243 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 12 Nov 2015 00:42:36 +0100 Subject: [PATCH] st: Fix Gaussian kernel calculation The result of subtracting unsigned operands is unsigned, which throws off our calculation in case it should be negative. This partly reverts 18b6f133952. https://bugzilla.gnome.org/show_bug.cgi?id=757779 --- src/st/st-private.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/st/st-private.c b/src/st/st-private.c index 9ff469a81..559336c42 100644 --- a/src/st/st-private.c +++ b/src/st/st-private.c @@ -211,7 +211,7 @@ calculate_gaussian_kernel (gdouble sigma, { gdouble *ret, sum; gdouble exp_divisor; - guint half, i; + int half, i; g_return_val_if_fail (sigma > 0, NULL); @@ -223,14 +223,14 @@ calculate_gaussian_kernel (gdouble sigma, exp_divisor = 2 * sigma * sigma; /* n_values of 1D Gauss function */ - for (i = 0; i < n_values; i++) + for (i = 0; i < (int)n_values; i++) { ret[i] = exp (-(i - half) * (i - half) / exp_divisor); sum += ret[i]; } /* normalize */ - for (i = 0; i < n_values; i++) + for (i = 0; i < (int)n_values; i++) ret[i] /= sum; return ret;