r18437 - gnucash/trunk/src/html - Fix memory leak: Let the pixbuf renderer for goffice plots be unreferenced upon plot destruction.

Christian Stimming cstim at code.gnucash.org
Sun Nov 22 15:39:54 EST 2009


Author: cstim
Date: 2009-11-22 15:39:53 -0500 (Sun, 22 Nov 2009)
New Revision: 18437
Trac: http://svn.gnucash.org/trac/changeset/18437

Modified:
   gnucash/trunk/src/html/gnc-html-graph-gog.c
Log:
Fix memory leak: Let the pixbuf renderer for goffice plots be unreferenced upon plot destruction.

Pointed out by Jean Bréfort.

Modified: gnucash/trunk/src/html/gnc-html-graph-gog.c
===================================================================
--- gnucash/trunk/src/html/gnc-html-graph-gog.c	2009-11-22 20:17:22 UTC (rev 18436)
+++ gnucash/trunk/src/html/gnc-html-graph-gog.c	2009-11-22 20:39:53 UTC (rev 18437)
@@ -129,18 +129,21 @@
 	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 );



More information about the gnucash-changes mailing list