From 1ff729fd7bfd45266e13137ec37ff353b08dd640 Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 10 Aug 2008 15:16:47 +0000 Subject: [PATCH] * convolution.c: fix a small memory leak in the convolution filter. git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@2684 92316355-f0b4-4df1-b90c-862c8a59935f --- pipi/filter/convolution.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pipi/filter/convolution.c b/pipi/filter/convolution.c index 2509bfa..569def5 100644 --- a/pipi/filter/convolution.c +++ b/pipi/filter/convolution.c @@ -35,6 +35,7 @@ static pipi_image_t *pipi_convolution_separable(pipi_image_t *src, pipi_image_t *pipi_convolution(pipi_image_t *src, int m, int n, double mat[]) { + pipi_image_t *ret; double tmp; double *hvec, *vvec; int i, j, besti = -1, bestj = -1; @@ -75,7 +76,6 @@ pipi_image_t *pipi_convolution(pipi_image_t *src, int m, int n, double mat[]) } /* Matrix rank is 1! Separate the filter */ - /* FIXME: memleak */ hvec = malloc(m * sizeof(double)); vvec = malloc(n * sizeof(double)); @@ -85,7 +85,12 @@ pipi_image_t *pipi_convolution(pipi_image_t *src, int m, int n, double mat[]) for(j = 0; j < n; j++) vvec[j] = mat[j * m + besti] / tmp; - return pipi_convolution_separable(src, m, hvec, n, vvec); + ret = pipi_convolution_separable(src, m, hvec, n, vvec); + + free(hvec); + free(vvec); + + return ret; } static pipi_image_t *pipi_convolution_standard(pipi_image_t *src,