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;