On Mar 25, 2013, at 1:57 PM, Roland Knall <rkn...@gmail.com> wrote:

> Under Mac OS X some warnings came up, and among them is a repeated
> warning about an unused *data parameter for every call to a heuristic
> dissector.

Or, rather, a repeated warning about an unused *data parameter in every 
*definition* of a heuristic dissector *that doesn't use it or explicitly flag 
it as unused*.

No existing dissectors use it, but they all flag it as unused, so the warnings 
do *not* come up when you compile the Wireshark trunk; they only show up if 
you're adding your own dissector, or have changed an existing dissector, and 
have a heuristic dissector that doesn't use the argument and doesn't flag it as 
unused.

> As I do use the heuristic dissector, but do not use the
> data argument, I looked up every occurence, where dissection is passed
> to a heuristic dissector. In every case, NULL is passed as *data
> argument.

To be precise, in the *current* Wireshark source tree, NULL is passed as the 
*data argument in all calls to dissector_try_heuristic().

> So my question is this: What is the *data arguments intention

To allow the calling dissector to pass private information to the called 
dissector, rather than using the pinfo->private_data variable; that way, you 
don't have to worry about, for example, saving and restoring private_data 
values.  (It replaces a quasi-global variable with an argument.)

> and who uses it actually?

No heuristic dissectors currently use it, but it's there for use in the future; 
we may convert heuristic dissectors to use it in the future.

> But from a software development point of view, this is faulty
> behaviour. If we do have an argument we should use it or throw it
> away.

In places where arbitrary functions can be registered in tables, or passed as 
callback routines, the function signature is fixed, but not all functions 
necessarily have a use for all the information passed to them, even if some 
functions do.
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to