[grisbi-devel] [PATCH 09/15] Fix leak of 'navigation_model' gsb_gui_navigation_create_navigation_pane()
remi at gentoo.org
Sat Mar 9 16:54:01 CET 2013
GObject-derived types are created with a reference count of 1 (unlike
GInitiallyUnowned-derived types which are created with a floating ref)
so they need to be unref()ed explicitly at some point.
In this case, the fix is correct but not satisfactory as we keep using
the 'global' static pointer without properly holding a reference.
src/navigation.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/navigation.c b/src/navigation.c
index 32706a1..77fc1ce 100644
@@ -251,6 +251,9 @@ GtkWidget *gsb_gui_navigation_create_navigation_pane ( void )
gtk_tree_selection_set_mode ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( navigation_tree_view ) ),
gtk_tree_view_set_model ( GTK_TREE_VIEW ( navigation_tree_view ), GTK_TREE_MODEL( navigation_model ) );
+ /* FIXME, since navigation_model is a static variable, we _do_ hold a ref...
+ Maybe we should be using a WeakRef? */
+ g_object_unref ( G_OBJECT ( navigation_model ) );
/* Handle drag & drop */
navigation_dst_iface = GTK_TREE_DRAG_DEST_GET_IFACE ( navigation_model );
More information about the devel