mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Fix memory leak: Let the pixbuf renderer for goffice plots be unreferenced upon plot destruction.
Pointed out by Jean Bréfort. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18437 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
9a0b1dd937
commit
5e12c3188b
@ -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 ));
|
renderer = GOG_RENDERER(g_object_new( GOG_TYPE_RENDERER, "model", graph, NULL ));
|
||||||
update_status = gog_renderer_update( renderer, width, height );
|
update_status = gog_renderer_update( renderer, width, height );
|
||||||
buf = gog_renderer_get_pixbuf( renderer );
|
buf = gog_renderer_get_pixbuf( renderer );
|
||||||
|
g_object_set_data_full( G_OBJECT(buf), "renderer", renderer, g_object_unref );
|
||||||
#elif defined(GOFFICE_WITH_CAIRO)
|
#elif defined(GOFFICE_WITH_CAIRO)
|
||||||
cairo_renderer = GOG_RENDERER_CAIRO(g_object_new( GOG_RENDERER_CAIRO_TYPE,
|
cairo_renderer = GOG_RENDERER_CAIRO(g_object_new( GOG_RENDERER_CAIRO_TYPE,
|
||||||
"model", graph,
|
"model", graph,
|
||||||
NULL ));
|
NULL ));
|
||||||
update_status = gog_renderer_cairo_update( cairo_renderer, width, height, 1.0 );
|
update_status = gog_renderer_cairo_update( cairo_renderer, width, height, 1.0 );
|
||||||
buf = gog_renderer_cairo_get_pixbuf( cairo_renderer );
|
buf = gog_renderer_cairo_get_pixbuf( cairo_renderer );
|
||||||
|
g_object_set_data_full( G_OBJECT(buf), "renderer", cairo_renderer, g_object_unref );
|
||||||
#else
|
#else
|
||||||
pixbuf_renderer = GOG_RENDERER_PIXBUF(g_object_new( GOG_RENDERER_PIXBUF_TYPE,
|
pixbuf_renderer = GOG_RENDERER_PIXBUF(g_object_new( GOG_RENDERER_PIXBUF_TYPE,
|
||||||
"model", graph,
|
"model", graph,
|
||||||
NULL));
|
NULL));
|
||||||
update_status = gog_renderer_pixbuf_update( pixbuf_renderer, width, height, 1.0 );
|
update_status = gog_renderer_pixbuf_update( pixbuf_renderer, width, height, 1.0 );
|
||||||
buf = gog_renderer_pixbuf_get( pixbuf_renderer );
|
buf = gog_renderer_pixbuf_get( pixbuf_renderer );
|
||||||
|
g_object_set_data_full( G_OBJECT(buf), "renderer", pixbuf_renderer, g_object_unref );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
g_object_set_data_full( G_OBJECT(buf), "graph", graph, g_object_unref );
|
g_object_set_data_full( G_OBJECT(buf), "graph", graph, g_object_unref );
|
||||||
|
Loading…
Reference in New Issue
Block a user