From fc7af7705ca0b381a9abd0535d02bd44e3f07ced Mon Sep 17 00:00:00 2001 From: "Michael W. Hudson" Date: Tue, 5 Mar 2002 14:23:56 +0000 Subject: [PATCH] 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. --- Objects/object.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Objects/object.c b/Objects/object.c index 581217886916..0541fbda44fe 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -1888,11 +1888,8 @@ PyMem_Malloc(size_t nbytes) 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 -- 2.47.3