Patent ID: 7051056

Claim:
A system, comprising: a processor; and a memory coupled to the processor, wherein the memory stores program instructions executable by the processor to implement a memory manager comprising: a memory allocator; and a conservative garbage collector; wherein the memory allocator is configured to: allocate memory for objects within a heap on behalf of a process; generate a heap map comprising a plurality of heap map entries, wherein each heap map entry of the plurality of heap map entries includes an address of an object allocated within the heap; and provide the heap map to the conservative garbage collector; and wherein the conservative garbage collector is configured to: generate a mark list identifying one or more objects within the heap, wherein addresses of the one or more objects correspond to data values specified within an address space of the process, wherein said generating comprises using the heap map, wherein said generating the mark list includes: tracing memory comprising a global variable of the process to identify potential pointers to heap objects, wherein a data value specified in the global variable is identified as a potential pointer to a heap object if the data value represents a numeric quantity greater than or equal to a starting address of the heap and less than an ending address of the heap; and in response to identifying a potential pointer to a heap object, creating an entry in the mark list for the heap object pointed to by the potential pointer; and, free a given object previously allocated in the heap if the mark list indicates that an address of the given object does not correspond to a data value specified within the address space.