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