# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1395400366 0 # Node ID 969f7bbc0ff5836ddf7dfcccd3ef3e2dc947769f # Parent 7ffa1b256c33bc1dadd85c7cbed3d747bdf7d8e8 Fixed memory leak in dw_tree_get_parent() on GTK2/3... This also makes this function return the same handle instead of a unique handle referencing the same node. diff -r 7ffa1b256c33 -r 969f7bbc0ff5 gtk/dw.c --- a/gtk/dw.c Sat Feb 15 01:20:42 2014 +0000 +++ b/gtk/dw.c Fri Mar 21 11:12:46 2014 +0000 @@ -6605,12 +6605,10 @@ if(tree && GTK_IS_TREE_VIEW(tree) && (store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) { - GtkTreeIter *p = malloc(sizeof(GtkTreeIter)); - - if(gtk_tree_model_iter_parent(store, p, (GtkTreeIter *)item)) - parent = p; - else - free(p); + GtkTreeIter iter; + + if(gtk_tree_model_iter_parent(store, &iter, (GtkTreeIter *)item)) + gtk_tree_model_get(store, &iter, 3, &parent, -1); } #else parent = (HTREEITEM)gtk_object_get_data(GTK_OBJECT(item), "_dw_parent"); diff -r 7ffa1b256c33 -r 969f7bbc0ff5 gtk3/dw.c --- a/gtk3/dw.c Sat Feb 15 01:20:42 2014 +0000 +++ b/gtk3/dw.c Fri Mar 21 11:12:46 2014 +0000 @@ -5341,12 +5341,10 @@ if(tree && GTK_IS_TREE_VIEW(tree) && (store = (GtkTreeModel *)gtk_tree_view_get_model(GTK_TREE_VIEW(tree)))) { - GtkTreeIter *p = malloc(sizeof(GtkTreeIter)); - - if(gtk_tree_model_iter_parent(store, p, (GtkTreeIter *)item)) - parent = p; - else - free(p); + GtkTreeIter iter; + + if(gtk_tree_model_iter_parent(store, &iter, (GtkTreeIter *)item)) + gtk_tree_model_get(store, &iter, 3, &parent, -1); } DW_MUTEX_UNLOCK; return parent;