From 5e12c3188b8e93a6722e97b4f86a3384a62af0e5 Mon Sep 17 00:00:00 2001 From: Christian Stimming Date: Sun, 22 Nov 2009 20:39:53 +0000 Subject: [PATCH] Fix memory leak: Let the pixbuf renderer for goffice plots be unreferenced upon plot destruction. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pointed out by Jean Bréfort. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18437 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/html/gnc-html-graph-gog.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/html/gnc-html-graph-gog.c b/src/html/gnc-html-graph-gog.c index e1ea051afd..d72d230091 100644 --- a/src/html/gnc-html-graph-gog.c +++ b/src/html/gnc-html-graph-gog.c @@ -129,18 +129,21 @@ create_graph_pixbuf( GogObject *graph, int width, int height ) renderer = GOG_RENDERER(g_object_new( GOG_TYPE_RENDERER, "model", graph, NULL )); update_status = gog_renderer_update( renderer, width, height ); buf = gog_renderer_get_pixbuf( renderer ); + g_object_set_data_full( G_OBJECT(buf), "renderer", renderer, g_object_unref ); #elif defined(GOFFICE_WITH_CAIRO) cairo_renderer = GOG_RENDERER_CAIRO(g_object_new( GOG_RENDERER_CAIRO_TYPE, "model", graph, NULL )); update_status = gog_renderer_cairo_update( cairo_renderer, width, height, 1.0 ); buf = gog_renderer_cairo_get_pixbuf( cairo_renderer ); + g_object_set_data_full( G_OBJECT(buf), "renderer", cairo_renderer, g_object_unref ); #else pixbuf_renderer = GOG_RENDERER_PIXBUF(g_object_new( GOG_RENDERER_PIXBUF_TYPE, "model", graph, NULL)); update_status = gog_renderer_pixbuf_update( pixbuf_renderer, width, height, 1.0 ); buf = gog_renderer_pixbuf_get( pixbuf_renderer ); + g_object_set_data_full( G_OBJECT(buf), "renderer", pixbuf_renderer, g_object_unref ); #endif g_object_set_data_full( G_OBJECT(buf), "graph", graph, g_object_unref );