Daniel Shahaf <d...@daniel.shahaf.name> writes:

> First of all, I made the same patch yesterday elsewhere.

Another bug :)

> Second of all, the use is #if, not #ifdef, so I believe the macro is
> always defined (to 0 or 1).

The one doesn't follow from the other.  In either case the macro could
be zero, non-zero, no value or not defined:

                                     #if                #ifdef
#define APR_HAS_THREADS 1            true               true
#define APR_HAS_THREADS 0            false              true
#define APR_HAS_THREADS              true               true
<nothing>                            false              false

So not defining APR_HAS_THREADS is a valid way to define no thread
support, but it means you can't use APR_HAS_THREADS directly as a
variable.

It's possible that APR will always ensure that APR_HAS_THREADS is either
0 or 1, but the C language does not.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Reply via email to