[Vm-dev] newDelta >0 failed in sqUnixMemory
Andreas Raab
andreas.raab at gmx.de
Fri Jan 30 17:29:30 UTC 2009
David T. Lewis wrote:
>> fprintf(stderr, "oldLimit=%p\ndelta=%d\nnewSize=%d\nnewDelta=%d\n");
>>
>> oldLimit=0x80562b8
>> delta=-1077506096
>> newSize=0
>> newDelta=423027548
>> squeak: /tmp/squeak-svn/platforms/unix/vm/sqUnixMemory.c:175:
>> uxGrowMemoryBy: Assertion `newDelta >= 0' failed.
>>
>> Does it help?
>
> Yes. I don't think newSize is supposed to be 0 here.
>
> int newSize= min(valign(oldLimit - heap + delta), heapLimit);
> int newDelta= newSize - heapSize;
>
> I'm not sure what is wrong, but apparently it's in the expression
> "min(valign(oldLimit - heap + delta), heapLimit)".
Could be a CSE bug. Considering that min(a,b) is usually defined as "a <
b ? a : b" or so, a compiler might do something with the valign(...)
expression. I would try to move the expression out of there and see if
that helps.
Cheers,
- Andreas
More information about the Vm-dev
mailing list