diff options
author | Jaap Keuter <jaap.keuter@xs4all.nl> | 2008-10-15 20:02:15 +0000 |
---|---|---|
committer | Jaap Keuter <jaap.keuter@xs4all.nl> | 2008-10-15 20:02:15 +0000 |
commit | 0fde67dd54131faf1ee8e6f0d6928f852af4b913 (patch) | |
tree | 8212bd220de617477e68098393e4dffc5f978a08 /epan/dfilter | |
parent | 369f9243cef07330b1fad187afd6a4d349267eda (diff) |
From Andrew Narver:
Currently, if you call proto_tree_free on anything other than the root node of a tree
the tree will get left in an inconsistent state. This is because the parent is left pointing
to the newly freed child.
The traversal code is updated, the parent node update is currently disabled since
freeing is done for the complete tree only at this time, so there is no need to keep
the parent node consistent.
svn path=/trunk/; revision=26466
Diffstat (limited to 'epan/dfilter')
-rw-r--r-- | epan/dfilter/dfilter-macro.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/epan/dfilter/dfilter-macro.c b/epan/dfilter/dfilter-macro.c index 832190131e..319754c187 100644 --- a/epan/dfilter/dfilter-macro.c +++ b/epan/dfilter/dfilter-macro.c @@ -93,7 +93,7 @@ static gboolean fvt_cache_cb(proto_node * node, gpointer data _U_) { void dfilter_macro_build_ftv_cache(void* tree_root) { g_hash_table_foreach_remove(fvt_cache,free_value,NULL); - proto_tree_traverse_in_order(tree_root, fvt_cache_cb, NULL); + proto_tree_traverse_post_order(tree_root, fvt_cache_cb, NULL); } void dfilter_macro_foreach(dfilter_macro_cb_t cb, void* data) { |