Hi,

The current root set enumeration code has no special treatment with
magic Address fields. They are taken as normal object reference
fields. This is incorrect since their values are memory addresses that
are not necessarily pointing to objects. Actually we probably need to
keep the contract the Address field should never contain an object
reference, so to skip them in enumeration doesn't miss any live
objects. (They can contain an address that happens to be an object
reference, but this object reference is enumerable from other roots or
object fields.)

Do you agree with this contract and should we modify the root set
enumeration code to skip Address fields?

Thanks,
xiaofeng

Reply via email to