Hi Richard (and Bill)

It is historic... at the first, there is only limited fixed field and
tagged field...
and on last 802.11 spec, there is > 100 tagged field...

If you have a solution to avoid a big switch...
i have already think to put each case on separate function... but for some
case, there is only 5 lines of code...

Regards,

On Wed, Sep 9, 2015 at 6:11 PM, Bill Meier <wme...@newsguy.com> wrote:

> On 9/9/2015 12:03 PM, Bill Meier wrote:
>
>> On 9/9/2015 11:23 AM, Richard Sharpe wrote:
>>
>>> Take a look at epan/dissectors/packet-ieee80211.c!
>>>
>>> Specifically, add_tagged_field.
>>>
>>> That function is approximately 2,300 lines long and it consists of one
>>> big switch statement with every arm containing open-coded statements
>>> to add things to the proto tree.
>>>
>>>
>> It's even worse:
>>
>> add_fixed_field() given a "fixed field number" does a linear search thru
>> a (large) table to to find the number (and the associated function
>> address) and then calls the function ...
>>
>> One side effect: there are functions which aren't used but since they're
>> in the table, they're not flagged as unused by the compiler.
>>
>> In several cases there is (or was) duplicate code elsewhere doing a
>> dissection similar to the unused "fixed field functions".
>>
>> (I was working to fix all this but got a bit bored because I had to
>> spend time delving thru the 802211 spec trying to understand the code.
>> I guess I should at least do that work (unless you have a broader
>> solution in mind to handle both tagged and fixed fields ?)
>>
>>
>
> Actually, I guess add_tagged_field and add_fixed_field are sort of doing
> the same thing (just in different ways) with respect to the lookup.
>
>
>
>
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
> Archives:    https://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
>             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe
>
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    https://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