On Sun, 6 Dec 2009, Avi Kivity wrote:
> On 12/06/2009 01:53 PM, malc wrote:
> > On Sun, 6 Dec 2009, Avi Kivity wrote:
> >
> >
> > > On 12/06/2009 12:22 PM, malc wrote:
> > >
> > > > Here, i believe, you are inventing artificial restrictions on how
> > > > malloc behaves, i don't see anything that prevents the implementor
> > > > from setting aside a range of addresses with 31st bit set as an
> > > > indicator of "zero" allocations, and then happily giving it to the
> > > > user of malloc and consumming it in free.
> > > >
> > > >
> > > The implementation needs to track which addresses it handed out, since it
> > > is
> > > required that malloc(0) != malloc(0) (unless both are NULL).
> > >
> > You haven't read carefully, i said range.
> >
>
> I did in fact. Consider a loop
>
> malloc(0);
> p = malloc(0);
> while (1) {
> n = malloc(0);
> free(p);
> p = n;
> }
>
> without some form of tracking, you won't be able to return unique addresses
> eventually.
So? There will be tracking, it's the same as with OpenBSD where
allocations of zero and greater than zero are handled differently.
--
mailto:[email protected]