4 #if defined(WINDOWS) && defined(FACTOR_64)
5 const cell seh_area_size = 1024;
7 const cell seh_area_size = 0;
11 /* The actual memory area */
14 /* Memory area reserved for SEH. Only used on Windows */
17 /* Memory allocator */
18 free_list_allocator<code_block> *allocator;
20 /* Keys are blocks which need to be initialized by initialize_code_block().
21 Values are literal tables. Literal table arrays are GC roots until the
22 time the block is initialized, after which point they are discarded. */
23 std::map<code_block *, cell> uninitialized_blocks;
25 /* Code blocks which may reference objects in the nursery */
26 std::set<code_block *> points_to_nursery;
28 /* Code blocks which may reference objects in aging space or the nursery */
29 std::set<code_block *> points_to_aging;
31 explicit code_heap(cell size);
33 void write_barrier(code_block *compiled);
34 void clear_remembered_set();
35 bool uninitialized_p(code_block *compiled);
36 bool marked_p(code_block *compiled);
37 void set_marked_p(code_block *compiled);
38 void clear_mark_bits();
39 void free(code_block *compiled);
43 struct code_heap_room {
48 cell free_block_count;