Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Oct 2013 10:49:11 -0500
From:      Eric van Gyzen <eric_van_gyzen@dell.com>
To:        freebsd-net@freebsd.org
Cc:        Eric van Gyzen <eric@vangyzen.net>
Subject:   sys/net/radix.h: #define Free(p) for user-land
Message-ID:  <5252D7F7.3030709@dell.com>

next in thread | raw e-mail | index | archive | help
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@dell.com <mailto:eric_van_gyzen@dell.com>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5252D7F7.3030709>