[MLton] gc question

jdonham at cs.cmu.edu jdonham at cs.cmu.edu
Sun Feb 25 13:26:54 PST 2007


Hi,

Is this code (in foreachObjptrInObject) correct?

  else if (WEAK_TAG == tag) {
    p += bytesNonObjptrs;
    if (1 == numObjptrs) {
      if (not skipWeaks)
        callIfIsObjptr (s, f, (objptr*)p);
      p += OBJPTR_SIZE;
    }
  }

We only advance p past the weak pointer if it is valid, but this does
not seem to square with the description of foreachObjptrInObject:

  Returns pointer to the end of object, i.e. just past object.

or with the way it is called in foreachObjptrInRange. Am I missing
something?

Jake



More information about the MLton mailing list