[Vm-dev] I don't understand the GC root table
Andreas Raab
andreas.raab at gmx.de
Mon Sep 26 11:22:44 UTC 2011
The rootTable is used during incremental GC. Its contents are those
objects in old space that are roots for objects in new space (see
ObjectMemory>>beRootIfOld:). It has nothing to do with the (global)
roots of the interpreter; in fact the root table is cleared right at the
beginning of fullGC (see senders of #clearRootsTable). The global roots
are explicitly enumerated in Interpreter>>markAndTraceInterpreterOops.
Cheers,
- Andreas
On 9/26/2011 11:12, Mariano Martinez Peck wrote:
>
>
>
> Hi guys. I usually thought that the root table of the GC was the
> #specialObjectsArray. Now, checking a little bit the VM and image
> side, it seems I am totally wrong.
>
> "Smalltalk rootTable" answers an array that I cannot understand how
> such array can be the root. Where are the references to all the system
> from such an array? there is no reference to specialObjectsArray for
> example.
> Even more, the table seems to be full of weird stuff, such as "an
> OController", a lot of "a Text" instances about my workspaces stuff,
> Colors, Morhpic, etc....
>
> Smalltalk isRoot: Smalltalk specialObjectsArray -> false
> Smalltalk isRoot: true -> false
> Smalltalk isRoot: false -> false
> Smalltalk isRoot: nil -> false
>
> so...I am lost.
>
> Thanks in advance for any help.
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20110926/33e260af/attachment.htm
More information about the Vm-dev
mailing list