Patent ID: 7882159

Claim:
A method of managing memory, comprising: receiving an indication that an object is not reachable from any root object; and keeping the object alive, in the same manner as if the object were reachable from a root object, if it is determined by a garbage collection process, based at least in part on data other than data comprising the object or managed by an application with which the object is associated, that the object is associated strongly, by data other than data comprising the object or managed by an application with which the object is associated, with at least one other object that has been determined to be reachable; wherein the garbage collection process is configured to check, prior to collecting said object determined to not be reachable from any root object, a data structure managed by the garbage collection process to determine which of at least a subset of other objects that have been determined to be reachable from a root object have references made other than through an entry in a global or local variable to one or more other objects, and to ensure said one or more other objects, if any, are kept alive; and wherein the data structure comprises an associative references table that associates with each of a set of one or more opaque keys a corresponding value that comprises or identifies the object to which the associative reference with which the opaque key is associated has been made; wherein the object is kept alive by the opaque key when said one or more other objects have been determined not to be reachable from any root object.