On Sat, Jan 31, 2009 at 5:55 PM, David T. Lewis lewis@mail.msen.com wrote:
Just a hunch, but I would guess that if you changed valign() from a macro to a function that it would somehow decide to start working.
I used a function and get the following results.
int myvalign(int x) { return x & pageMask; }
int argToAlign = oldLimit - heap + delta; int align = myvalign(argToAlign); int newSize= min(align, heapLimit); int newDelta= newSize - heapSize;
oldLimit=0x7929cfe8 delta=0 newSize=23293952 newDelta=-4096 align=23293952 argToAlign=23298024 heap=2009485312 heapLimit=1073741824 squeak: /tmp/squeak-svn/platforms/unix/vm/sqUnixMemory.c:181: uxGrowMemoryBy: Assertion `newDelta >= 0' failed.