[Spread-users] The NULL/C++ bug
jschultz at spreadconcepts.com
Tue Jun 13 16:58:37 EDT 2006
Andrew Barnert wrote:
>Over a month ago, I pointed out a bug in Spread 3.17.3 that prevents
>using its C/C++ interface from C++ (or at least a conforming compiler
>like gcc4 or VC8--it works in gcc2 and VC7): it tries to #define NULL as
>(void *)0. I emailed a trivial patch to the list and to
>spread at spread.org, and I've heard nothing from any of the maintainers.
>Is there any intention to fix it in a 3.17.4 (or 3.18 or 22.214.171.124 or
>whatever) release? Is there even going to be another 3.x release? If we
>have to maintain a patch locally, that's fine, but it'd be nice to know
>The obvious fix (as suggested by Neil Conway) is to #include <stddef.h>
>at the top of sp_events.h instead of trying to #define NULL.
>This would be better than my patch, unless there's some good reason to
>avoid this (e.g., Spread would otherwise compile with a freestanding
>implementation on some embedded platform without standard headers). If
>that's the case, here are some other possibilities that should work for
>everything from ancient C compilers to modern C++ and C99 compilers:
>* Replace NULL with 0 in the one or two places it appears
>* Conditionally #define NULL as 0 for C++, (void *)0 for C
> (as in the patch I submitted)
>* #define and use SP_NULL instead of NULL
>* Just assume that standard NULL is available so it'll be a
> compiler error to #include sp_events.h without including the
> standard headers first.
Sorry we didn't get back to you sooner, but yes we agree that we
shouldn't be #defining NULL (legacy artifact) and we agree that
including stddef.h is probably the best way forward.
There will be a maintanence release for 3.17, which will be patch
version 4, that will address this and a few other known and fixed bugs
in the not too distant future. I will try to find out the timeframe for
that release and post it to the list.
For Spread 4, we are in release candidate 2 and we are awaiting any
further feedback and kicking around a few very minor changes we may or
may not want to include. An official release should be occurring within
the next month or two but should not be substantially different than the
Spread Concepts LLC
Phn: 301 498 3233
Cell: 443 838 2200
More information about the Spread-users