VM: better? comment for uninitialized_blocks
parent
91843ef22d
commit
603f5f9bbf
|
@ -19,11 +19,18 @@ struct code_heap {
|
|||
// Memory allocator
|
||||
free_list_allocator<code_block>* allocator;
|
||||
|
||||
// For fast lookup of blocks from addresses.
|
||||
std::set<cell> all_blocks;
|
||||
|
||||
// Keys are blocks which need to be initialized by initialize_code_block().
|
||||
// Values are literal tables. Literal table arrays are GC roots until the
|
||||
// time the block is initialized, after which point they are discarded.
|
||||
|
||||
// Code blocks are initialized in two steps in
|
||||
// primitive_modify_code_heap() because they might reference each
|
||||
// other. First they are all allocated and placed in this map with
|
||||
// their literal tables which are GC roots until the block is
|
||||
// initialized. Then they are all initialized by
|
||||
// initialize_code_block() which resolves relocations and updates
|
||||
// addresses. Uninitialized blocks instructions must not be visited
|
||||
// by GC.
|
||||
std::map<code_block*, cell> uninitialized_blocks;
|
||||
|
||||
// Code blocks which may reference objects in the nursery
|
||||
|
|
Loading…
Reference in New Issue