On Sep 7, 2013, at 9:46 AM, Gerald Combs <gerald@xxxxxxxxxxxxx> wrote:
> On 9/7/13 5:53 AM, Evan Huus wrote:
>> The usual trick in this situation is to wrap the macro in a "do { MY
>> CODE } while (0)" so that it behaves syntactically like a normal
>> function call. I have done this in r51819, so it should work now.
>
> Is there any reason we shouldn't convert the macros in address.h (and
> proto.h and packet.h and ...) to inline functions?
The only reason to would be "caring about compilers that don't handle inline functions", but that may be significantly less important now than when the code was originally written, as more of the compilers with which Wireshark can be compiled probably now support inline functions.
According to
https://developer.gnome.org/glib/stable/glib-Miscellaneous-Macros.html#G-INLINE-FUNC:CAPS
"...inline is already declared in a portable manner in the GLib headers and can be used normally.", so if some compiler uses something *other* than just "inline" (e.g., "__inline", as I think some compilers with which we compile do), "inline" gets defined appropriately.
Presumably they'd be "static inline".