diff options
author | Tim Peters <tim.peters@gmail.com> | 2000-09-10 01:02:41 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2000-09-10 01:02:41 (GMT) |
commit | 4826a894c5afa6f8b61d2b94c5a8b07588cb692a (patch) | |
tree | 835d6e66d31c11f06dcb92362c4ce72cea344fe0 | |
parent | ecaf0d8b471113bbbf14b7eedb470b2f1d1d1b1f (diff) | |
download | cpython-4826a894c5afa6f8b61d2b94c5a8b07588cb692a.zip cpython-4826a894c5afa6f8b61d2b94c5a8b07588cb692a.tar.gz cpython-4826a894c5afa6f8b61d2b94c5a8b07588cb692a.tar.bz2 |
Close SF bug 110826: a complaint about the way Python #define'd NULL.
It's hard to sort out what the bug was, exactly. So, Big Hammer:
1. Python shouldn't be in the business of #define'ing NULL, period.
2. Users of the Python C API shouldn't be in the business of not including
Python.h, period.
Hence:
1. Removed all #define's of NULL in Python source code (pyport.h and
object.h).
2. Since we're *relying* on stdio.h defining NULL, put an #error in
Python.h after its #include of stdio.h if NULL isn't defined then.
-rw-r--r-- | Include/Python.h | 4 | ||||
-rw-r--r-- | Include/object.h | 7 | ||||
-rw-r--r-- | Include/pyport.h | 4 |
3 files changed, 4 insertions, 11 deletions
diff --git a/Include/Python.h b/Include/Python.h index fd7ddb6..46bfda2 100644 --- a/Include/Python.h +++ b/Include/Python.h @@ -36,6 +36,10 @@ #endif #include <stdio.h> +#ifndef NULL +# error "Python.h requires that stdio.h define NULL." +#endif + #include <string.h> #include <errno.h> #ifdef HAVE_STDLIB_H diff --git a/Include/object.h b/Include/object.h index ab7a2c7..fa25d59 100644 --- a/Include/object.h +++ b/Include/object.h @@ -423,13 +423,6 @@ extern DL_IMPORT(long) _Py_RefTotal; #define Py_XINCREF(op) if ((op) == NULL) ; else Py_INCREF(op) #define Py_XDECREF(op) if ((op) == NULL) ; else Py_DECREF(op) -/* Definition of NULL, so you don't have to include <stdio.h> */ - -#ifndef NULL -#define NULL 0 -#endif - - /* _Py_NoneStruct is an object of undefined type which can be used in contexts where NULL (nil) is not suitable (since NULL often means 'error'). diff --git a/Include/pyport.h b/Include/pyport.h index b43b868..48cd45b 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -313,10 +313,6 @@ extern double hypot(double, double); #define DL_IMPORT(RTYPE) RTYPE #endif -#ifndef NULL -#define NULL ((void *)0) -#endif - #ifdef MALLOC_ZERO_RETURNS_NULL /* XXX Always allocate one extra byte, since some malloc's return NULL XXX for malloc(0) or realloc(p, 0). */ |