diff Objects/object.c @ 22141:4ff9f8a74c82 2.2

backport tim_one's checkin of revision 2.164 of object.c Whether platform malloc(0) returns NULL has nothing to do with whether platform realloc(p, 0) returns NULL, so MALLOC_ZERO_RETURNS_NULL can be correctly undefined yet realloc(p, 0) can return NULL anyway. Prevent realloc(p, 0) doing free(p) and returning NULL via a different hack. Would probably be better to get rid of MALLOC_ZERO_RETURNS_NULL entirely. Bugfix candidate.
author Michael W. Hudson <mwh@python.net>
date Tue, 05 Mar 2002 14:23:56 +0000
parents 0189186f4ed9
children db040938dc66
line wrap: on
line diff
--- a/Objects/object.c	Tue Mar 05 14:20:51 2002 +0000
+++ b/Objects/object.c	Tue Mar 05 14:23:56 2002 +0000
@@ -1888,11 +1888,8 @@
 void *
 PyMem_Realloc(void *p, size_t nbytes)
 {
-#if _PyMem_EXTRA > 0
-	if (nbytes == 0)
-		nbytes = _PyMem_EXTRA;
-#endif
-	return PyMem_REALLOC(p, nbytes);
+	/* See comment near MALLOC_ZERO_RETURNS_NULL in pyport.h. */
+	return PyMem_REALLOC(p, nbytes ? nbytes : 1);
 }
 
 void