Crash during update?

Alexander Lazarević Alexander at Lazarevic.de
Wed Oct 29 16:56:09 UTC 2003


Am Mittwoch, 29. Oktober 2003 17:07 schrieb Joshua 'Schwa' Gargus:
> I just noticed this, too.  I have a self-compiled 3.6g VM, running on Linux
> on an Athlon.  The update goes fine on Windows.

I see the crash happening at the beginning of the gc mark phase when the 
ephemeron queue gets initialized. Shouldn't that code be the same on linux 
and windows?

Alex

/* Mark phase of the mark and sweep garbage collector. Set the mark
   bits of all reachable objects. Free chunks are untouched by this
   process. Assume: All non-free objects are initially unmarked. Root
   objects were unmarked when they were made roots. (Make sure this
   stays true!!). */

int markPhase(void) {
  register struct foo * foo = &fum;
  int oop;
  int i;
  int classFormat;
  int keyMarked;
  int anyNew;
  int oop1;
  int ephemeron;
  int ephemeronKey;
  int nilOop;
  int header;

  foo->freeContexts = NilContext;
  
  /* initialize the ephemeron queue */

  foo->freeLargeContexts = NilContext;
  foo->lastEphemeron = foo->nilObj;
  foo->theEphemeronKeyOffset = 0;
  if ((lengthOf(foo->specialObjectsOop)) >= ClassEphemeron) {
    foo->theClassEphemeron = longAt(((((char *) foo->specialObjectsOop)) + 
BaseHeaderSize) + (ClassEphemeron << 2));
    /**** BOOOM ****/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 155 bytes
Desc: signature
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20031029/09d92442/attachment.pgp


More information about the Squeak-dev mailing list