Ok, I've got my initials on it by accident. The change made was "di 11/18/2000 - return number of objects found" which I happened to do for Dan at his request to solve the multiple GC events because the forwarding table was full. The forwarding table now is sized by the number of objects in the image, so that number comes from somewhere, and Dan added code to snatch it from this method.
Now I can't speak for the comment... And I wonder if it's fixed? See self longAt: oop put: (header bitAnd: AllButRootBit). clears that Root Bit everywhere. But I'd think ObjectMemory>>clearRootsTable should do that which is called from fullGC which is called from ObjectMemory>>primitiveSnapshot.
So anyone know if this is still a bug? Or is it dead.
Still need to count those objects tho...
FWIW, it would be easy to forego the counting, since the forwarding block allocation could be determined in a worst-case way from the size of the image instead. Plus, it's an interim solution anyway. There's a better way that's waiting for some free time.
- Dan