[Python-checkins] CVS: python/dist/src/Objects object.c,2.162,2.162.6.1

Michael Hudson mwh@users.sourceforge.net
2002年3月05日 06:23:58 -0800


Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv11399
Modified Files:
 Tag: release22-maint
	object.c 
Log Message:
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.
Index: object.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/object.c,v
retrieving revision 2.162
retrieving revision 2.162.6.1
diff -C2 -d -r2.162 -r2.162.6.1
*** object.c	4 Dec 2001 15:54:53 -0000	2.162
--- object.c	5 Mar 2002 14:23:56 -0000	2.162.6.1
***************
*** 1889,1897 ****
 PyMem_Realloc(void *p, size_t nbytes)
 {
! #if _PyMem_EXTRA > 0
! 	if (nbytes == 0)
! 		nbytes = _PyMem_EXTRA;
! #endif
! 	return PyMem_REALLOC(p, nbytes);
 }
 
--- 1889,1894 ----
 PyMem_Realloc(void *p, size_t nbytes)
 {
! 	/* See comment near MALLOC_ZERO_RETURNS_NULL in pyport.h. */
! 	return PyMem_REALLOC(p, nbytes ? nbytes : 1);
 }
 

AltStyle によって変換されたページ (->オリジナル) /