wmem: fix rb-tree data printer feed

When using a data printer for the red/black tree it is fed with the
nodes of the tree. But nodes can be either subtree or data nodes.
Don't feed the subtree nodes to the data printer. The data printer can't
recognize it as such, can't handle it, or worse, could break stuff.

Change-Id: Ibbc1311d901c0d0c52e710f951dd53620f2c3d0f
Reviewed-on: https://code.wireshark.org/review/19652
Reviewed-by: Evan Huus <eapache@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Jaap Keuter 2017-01-16 22:14:26 +01:00 committed by Anders Broman
parent b83bbd92b5
commit 4ff9bddc46
1 changed files with 2 additions and 2 deletions

View File

@ -725,12 +725,12 @@ wmem_tree_print_nodes(const char *prefix, wmem_tree_node_t *node, guint32 level,
(void *)node->left, (void *)node->right,
node->color?"Black":"Red", node->key,
node->is_subtree?"tree":"data", node->data);
if(key_printer) {
if (key_printer) {
wmem_print_indent(level);
key_printer(node->key);
ws_debug_printf("\n");
}
if(data_printer) {
if (data_printer && !node->is_subtree) {
wmem_print_indent(level);
data_printer(node->data);
ws_debug_printf("\n");