[Python-Dev] Problem with the memory docs
Martin v. Loewis
05 Apr 2002 09:39:31 +0200
Tim Peters <firstname.lastname@example.org> writes:
> > That, OTOH, is not what Guido wants it to be. Guido wants Py_Malloc to
> > return 0 *only* in case of failure; allocating 0 bytes should
> > "normally" succeed. I still cannot see what problems you have with
> > this requirement.
> I'm not following this at all. Calling malloc(1) does exactly what Guido
> wants. "malloc(1)" isn't a broken Unix manpage reference, if that's how
> you're reading it; it means call malloc with an argument of 1.
I think I'm now getting to the root of your confusion. Calling
malloc(1) is *not* what Guido wants. Instead, he wants that
py_malloc(0) returns a non-null pointer "normally".
Now, there are some C libraries which normally return a NULL pointer
for malloc(0); as you point out, C gives them the freedom to do so. To
work-around this under-specification, one can call malloc(1) -
standards mandate that this does attempt to allocate something. It may
be possible to find different work-arounds, but this is the most