A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://mail.python.org/pipermail/python-dev/2004-January/042079.html below:

[Python-checkins] python/dist/src/Objects listobject.c, 2.176, 2.177

[Python-Dev] Re: [Python-checkins] python/dist/src/Objects listobject.c, 2.176, 2.177Hye-Shik Chang perky at i18n.org
Sun Jan 18 16:20:29 EST 2004
On Sun, Jan 18, 2004 at 03:09:13PM -0600, Jeff Epler wrote:
> On Mon, Jan 19, 2004 at 05:48:38AM +0900, Hye-Shik Chang wrote:
> > Is there a particular reason for allocating zero-sized memory for
> > this?  On my test, assigning NULL on self->ob_item instead is worked
> > either.
> 
> Yes.  I think that the explanation goes something like this:
> 
> Only values returned by malloc/calloc/realloc are suitable as an argument
> to realloc/free.  So, if you want to start with 0 bytes but not special
> case the deallocation or reallocation case, you write
> 	f = malloc(0);
> instead of 
> 	f = NULL;
> later, you can use
> 	f = realloc(f, newsize); /* Ignoring error checking */
> and
> 	f = free(f)
> instead of
> 	if (f) f = realloc(f, newsize);
> 	else f = malloc(newsize);
> and
> 	if(f) free(f);
> 
> now, some systems have malloc(0) return NULL, and accept free(NULL) as a
> no-op, and realloc(NULL, newsize) as malloc(newsize), but behavior other
> than that is allowed by the C standard.
> 

Thanks for the explanation. But listobject isn't using realloc and
ob_item == NULL case is concerned in the code already.

In PyList_New:
     73         if (size <= 0) {
     74                 op->ob_item = NULL;
     75         }

Excuse me but am I missed something?


Hye-Shik

More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4