what is the point of the IMPL_RTL_STRINGNAME macro?

Stephan Bergmann sbergman at redhat.com
Thu Oct 31 09:58:49 CET 2013


On 10/31/2013 09:46 AM, Noel Grandin wrote:
> There are some odd macros here:
>
>     http://opengrok.libreoffice.org/xref/core/sal/rtl/string.cxx#58
>
> which look like:
>
>       #define IMPL_RTL_STRINGNAME( n )    rtl_string_ ## n
>
> and then they are used in the code like this:
>
>      IMPL_RTL_STRINGNAME( release )( *pTarget );
>
> and in methods definitions like this:
>
>      static IMPL_RTL_STRINGDATA* IMPL_RTL_STRINGNAME( ImplAlloc )(
> sal_Int32 nLen )
>
>
> I'm not seeing the points of these macros?
> They make the methods in questions invisible to OpenGrok and grep and
> they don't seem to add any value.

Those IMPL_RTL_* macros are for use in the #include "strtmpl.cxx" a few 
lines further down.  Sort of poor man's templates, to do code sharing 
among string.cxx and ustring.cxx.

Uses of the macros directly in string.cxx could be resolved, of course.

Stephan


More information about the LibreOffice mailing list