Wireshark-dev: Re: [Wireshark-dev] switching to proto_tree_add_subtree()

Date: Tue, 29 Jul 2014 08:19:41 +0200
Hi,

On Mon, Jul 28, 2014 at 10:47:43PM +0200, Martin Kaiser wrote:
> However, I don't quite understand why for tree!=NULL but not visible,
> proto_tree_add_text() returns tree. I can see this in the code, we call
> TRY_TO_FAKE_THIS_ITEM(), which returns the tree itself when it's not
> visible. But what sense does this make for the caller?

Just to make filtering works.
We're keeping array of "interesting fields", stored in tree->tree_data->interesting_hfids.

In common case like this:
  foobar_tree = proto_tree_add_subtree_format(tree, ..., "Foobar");

  proto_tree_add_item(foobar_tree, hf_foobar_xyz, ...);
  proto_tree_add_item(foobar_tree, hf_foobar_aaa, ...);

when foobar_tree == NULL, proto_tree_add_item() will fast return in if (!tree) check inside TRY_TO_FAKE_THIS_ITEM_OR_FREE

Cheers,
Jakub.