[Python-Dev] are NULL checks in Objects/abstract.c reallyneeded?
Thu, 13 Mar 2003 16:20:52 -0500
> It's not clear to me that you'd see any benefit anyway. The checking code
> currently looks like this:
> if (o == NULL)
> return null_error();
> If you changed it to use assert you'd have
> assert(o != NULL);
> which expands to
> ((o != NULL) ? 0 : __assert(...));
In the release build, Python arranges to #define the preprocessor NDEBUG
symbol, which in turn causes assert() to expand to nothing (or maybe to
(void)0, or something like that, depending on the compiler). That's
standard ANSI C behavior for assert(). IOW, asserts cost nothing in a
release build -- and don't do anything in a release build either.