From: Tim Peters Date: Sun, 10 Sep 2000 01:02:41 +0000 (+0000) Subject: Close SF bug 110826: a complaint about the way Python #define'd NULL. X-Git-Tag: v2.0b2~388 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4826a894c5afa6f8b61d2b94c5a8b07588cb692a;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Include/Python.h b/Include/Python.h index fd7ddb63ed1c..46bfda2020e7 100644 --- a/Include/Python.h +++ b/Include/Python.h @@ -36,6 +36,10 @@ #endif #include +#ifndef NULL +# error "Python.h requires that stdio.h define NULL." +#endif + #include #include #ifdef HAVE_STDLIB_H diff --git a/Include/object.h b/Include/object.h index ab7a2c7eea07..fa25d59c286d 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 */ - -#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 b43b86805284..48cd45b9442d 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). */