[Vm-dev] Question about GC
Mariano Martinez Peck
marianopeck at gmail.com
Fri Apr 2 11:22:58 UTC 2010
Hi. I have been trying to understand a little how the Squeak GC works, and
there is something very basic I don't understand. GC is supposed to start
from the rootTable and mark all the objects that are reachable. This
objects, includes those which are in the "old space". I mean, the old
objects too.
The problem is that I don't find where in the code is that. If i look to
ObjectMemory >> markAndTrace: oop I see:
(self oop: oop isGreaterThanOrEqualTo: youngStart)
ifTrue: [ header := header bitOr: MarkBit ]. "mark only if young"
So...it is only marked if young.
Then, in ObjectMemory >> startObj I see
(self oop: oop isLessThan: youngStartLocal)
ifTrue: ["old object; skip it"
field := oop.
^ Upward].
So....where are the old objects being marked ?
Thanks in advance.
Mariano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20100402/d48e405f/attachment.htm
More information about the Vm-dev
mailing list