We had
base=
01100000 size=1048576 size_delta=0 it->size=2097152
it->base=
00F00000 base-it->base=
00200000
in commitBlocks.
Esa Ilari Vuokko identified this inequality test as the cause.
commitBlocks(char* base, int size) {
alloc_rec* it;
it=allocs;
- for( ; it!=0 && (it->base+it->size)<base; it=it->next ) {}
+ for( ; it!=0 && (it->base+it->size)<=base; it=it->next ) {}
for( ; it!=0 && size>0; it=it->next ) {
int size_delta;
void* temp;