sys/net/radix.h: #define Free(p) for user-land

Eric van Gyzen eric_van_gyzen at dell.com
Mon Oct 7 15:50:22 UTC 2013


The user-land definition of the Free() macro in sys/net/radix.h is
rather inconvenient.  I work on a large C++ code-base, where several
classes define Free() functions.  This header file gets indirectly
included in a few modules (via nested #includes), so we have to #undef
Free to work around this macro definition.

Ideally, radix.h would define a more unique name, such as R_Free().  If
I were using a C code-base, you could say the same about my code, but
it's C++, and Free() is already well qualified by classes and/or namespaces.

Is this Free() macro considered a well-defined, widely known, and
therefore mandatory part of the API, or could it be renamed to something
more unique?  Alternatively, could it be changed to an inline function
definition, so as not to conflict with declarations in other
namespaces?  If any of these is possible, I'll gladly provide the
blindingly trivial patch, although I don't have a commit bit.

Finding in-tree consumers of this macro is difficult, due to its generic
name.  Its counterparts--R_Malloc and R_Zalloc--only appear in
sys/net/{radix,route,rtsock}.c (on head).  The recent ipfilter update
removed the only [potential] in-tree user-land consumer.

Eric

-- 
*Eric van Gyzen*
Senior Software Development Engineer
*Dell* | Compellent
*office* +1 952 562 3197
Cube J-732, 7615 Smetana Lane
Eden Prairie, MN 55344
eric_van_gyzen at dell.com <mailto:eric_van_gyzen at dell.com>


More information about the freebsd-net mailing list