Patent ID: 7085789

Claim:
A computer program product provided on a computer readable storage medium encoding a computer program for executing on a computer system a computer process for identifying a root set of pointers to a heap in a call stack using compact garbage collection tables adapted for use in reclaiming memory from the heap during runtime, the computer process comprising: generating a first call site table storing call site identifiers, each call site identifier identifying the location of a call site in a computer program; generating a final descriptor table storing a set of unique descriptors to be associated with one or more stack frames by a garbage collector, each unique descriptor describing a set of registers containing pointers to the heap and a set of offsets relative to a location within each of the one or more stack frame containing pointers to the heap; generating a descriptor reference table associated with the first call site table, each entry in the descriptor reference table mapping a call site identifier in the first call site table to one of the unique descriptors in the final descriptor table; traversing the call stack and associating a first stack frame in the call stack with a first call site identifier using the first call site table; associating the first call site identifier with a first unique descriptor in the final descriptor table using the descriptor reference table; and using the first unique descriptor to identify the set of registers containing pointers to the heap associated with the first stack frame and the locations of pointers within the first stack frame containing pointers to the heap.