comparison gtk/dw.c @ 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 ed377fd16360
children 6923871d0048
comparison
equal deleted inserted replaced
1899:7ffa1b256c33 1900:969f7bbc0ff5
6603 tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); 6603 tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle));
6604 6604
6605 if(tree && GTK_IS_TREE_VIEW(tree) && 6605 if(tree && GTK_IS_TREE_VIEW(tree) &&
6606 (store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store"))) 6606 (store = (GtkTreeModel *)gtk_object_get_data(GTK_OBJECT(tree), "_dw_tree_store")))
6607 { 6607 {
6608 GtkTreeIter *p = malloc(sizeof(GtkTreeIter)); 6608 GtkTreeIter iter;
6609 6609
6610 if(gtk_tree_model_iter_parent(store, p, (GtkTreeIter *)item)) 6610 if(gtk_tree_model_iter_parent(store, &iter, (GtkTreeIter *)item))
6611 parent = p; 6611 gtk_tree_model_get(store, &iter, 3, &parent, -1);
6612 else
6613 free(p);
6614 } 6612 }
6615 #else 6613 #else
6616 parent = (HTREEITEM)gtk_object_get_data(GTK_OBJECT(item), "_dw_parent"); 6614 parent = (HTREEITEM)gtk_object_get_data(GTK_OBJECT(item), "_dw_parent");
6617 #endif 6615 #endif
6618 DW_MUTEX_UNLOCK; 6616 DW_MUTEX_UNLOCK;