summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2011-08-06 13:40:27 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2011-08-06 13:40:27 +0000
commitd44b95520c721d25c79287788bcc51865810051d (patch)
tree3b4ff198276ac944942ad9abf329a0e22115a1c0 /src
parentDocument things figured out during the rewriting (diff)
downloadinkscape-d44b95520c721d25c79287788bcc51865810051d.tar.gz
inkscape-d44b95520c721d25c79287788bcc51865810051d.zip
Plug a giant gaping memory leak in Gaussian blur filter
(bzr r10347.1.23)
Diffstat (limited to 'src')
-rw-r--r--src/display/nr-filter-gaussian.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/display/nr-filter-gaussian.cpp b/src/display/nr-filter-gaussian.cpp
index 3a6b425e1..a777d76a4 100644
--- a/src/display/nr-filter-gaussian.cpp
+++ b/src/display/nr-filter-gaussian.cpp
@@ -643,6 +643,13 @@ void FilterGaussian::render_cairo(FilterSlot &slot)
}
}
+ // free the temporary data
+ if ( use_IIR_x || use_IIR_y ) {
+ for(int i = 0; i < threads; ++i) {
+ delete[] tmpdata[i];
+ }
+ }
+
cairo_surface_mark_dirty(downsampled);
if (resampling) {
cairo_surface_t *upsampled = cairo_surface_create_similar(downsampled, cairo_surface_get_content(downsampled),