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:av1...@comtv.ru