21/01/2004 02:12:09, Gordon Henriksen <[EMAIL PROTECTED]> wrote:

> This is false. The mark phase will still need to run over the entire 
> process, else it cannot detect all references into the pool.
>

If by reference, you mean address, then that is true.

If when a reference is taken, the address of the referent is
stored in arbitrary other data structures, then all memory 
be scanned by the GC,

However, if references were not addresses, but an index into a 
table of addresses, then only the table need be scanned. 

When a reference, or the thing holding it, is deleted, then 
the indexed slot in the address table is blanked and subsequent
GC passes looking for references to a referent will no longer 
find the reference in the table. 

With the addition of a reference count to the table, all references
to a single entity can share the same index, but now I'm groping
back in the direction of reference counting, which is not flavour
of the month:)

Nigel.


Reply via email to