]> granicus.if.org Git - python/commitdiff
Close SF bug 110826: a complaint about the way Python #define'd NULL.
authorTim Peters <tim.peters@gmail.com>
Sun, 10 Sep 2000 01:02:41 +0000 (01:02 +0000)
committerTim Peters <tim.peters@gmail.com>
Sun, 10 Sep 2000 01:02:41 +0000 (01:02 +0000)
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
Include/object.h
Include/pyport.h

index fd7ddb63ed1ce4920a96ea50cfa8ac62823e62c6..46bfda2020e798693a2433c32026ae3491b1269f 100644 (file)
 #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
index ab7a2c7eea077ca5d47c09e0e025b5e37895e539..fa25d59c286dbb7e1e873fddb1af747e54b03428 100644 (file)
@@ -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').
index b43b868052848c175d9a1a177d4ca064e2bd37e0..48cd45b9442d358a87c7c292faded17323846ac6 100644 (file)
@@ -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). */