aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2012-12-06 16:45:30 +0100
committerThomas White <taw@bitwiz.org.uk>2012-12-06 16:45:30 +0100
commitdbe8beafe6f0ab6d282f1ab6c1462815cb79ab87 (patch)
tree35c1961da426719b2587b13a9ffe50f137af7f88 /tests
parent548c13ce48b7d78ac566968568b2e34474b10ab9 (diff)
Fix some memory leaks
Diffstat (limited to 'tests')
-rw-r--r--tests/render_test.c15
1 files changed, 10 insertions, 5 deletions
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;
}