From dbe8beafe6f0ab6d282f1ab6c1462815cb79ab87 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 6 Dec 2012 16:45:30 +0100 Subject: Fix some memory leaks --- tests/render_test.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/render_test.c b/tests/render_test.c index 82af375..ea3229f 100644 --- a/tests/render_test.c +++ b/tests/render_test.c @@ -39,13 +39,13 @@ static gint mw_destroy(GtkWidget *w, void *p) { - exit(0); + gtk_main_quit(); + return 0; } static gboolean draw_sig(GtkWidget *da, cairo_t *cr, gpointer data) { gint w, h; - cairo_surface_t *surf; struct slide *s = data; w = gtk_widget_get_allocated_width(da); @@ -56,11 +56,11 @@ static gboolean draw_sig(GtkWidget *da, cairo_t *cr, gpointer data) cairo_set_source_rgb(cr, 0.9, 0.9, 0.9); cairo_fill(cr); - surf = render_slide(s, w, h); + if ( s->rendered_edit != NULL ) cairo_surface_destroy(s->rendered_edit); + s->rendered_edit = render_slide(s, w, h); cairo_rectangle(cr, 0.0, 0.0, w, h); - cairo_set_source_surface(cr, surf, 0.0, 0.0); + cairo_set_source_surface(cr, s->rendered_edit, 0.0, 0.0); cairo_fill(cr); - cairo_surface_destroy(surf); return FALSE; } @@ -118,6 +118,9 @@ int main(int argc, char *argv[]) fr->num_children = 1; s.top = fr; + s.rendered_edit = NULL; + s.rendered_proj = NULL; + s.rendered_thumb = NULL; window = gtk_window_new(GTK_WINDOW_TOPLEVEL); @@ -134,5 +137,7 @@ int main(int argc, char *argv[]) gtk_widget_show_all(window); gtk_main(); + free_render_buffers(&s); + return 0; } -- cgit v1.2.3