From 4826a894c5afa6f8b61d2b94c5a8b07588cb692a Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Sun, 10 Sep 2000 01:02:41 +0000 Subject: 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. --- Include/Python.h | 4 ++++ Include/object.h | 7 ------- 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 +#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 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 */ - -#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). */ -- cgit v0.12