Mercurial > dwindows
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; |