Mercurial > dwindows
changeset 1900:969f7bbc0ff5
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.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 21 Mar 2014 11:12:46 +0000 |
parents | 7ffa1b256c33 |
children | 6923871d0048 |
files | gtk/dw.c gtk3/dw.c |
diffstat | 2 files changed, 8 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- 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");
--- 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;