When doing code heap compaction, don't scan stacks as roots since we're going to exit anyway
parent
e811dd6192
commit
8baaf04ac5
|
@ -149,6 +149,8 @@ void copy_roots(void)
|
||||||
copy_registered_locals();
|
copy_registered_locals();
|
||||||
copy_stack_elements(extra_roots_region,extra_roots);
|
copy_stack_elements(extra_roots_region,extra_roots);
|
||||||
|
|
||||||
|
if(!performing_compaction)
|
||||||
|
{
|
||||||
save_stacks();
|
save_stacks();
|
||||||
F_CONTEXT *stacks = stack_chain;
|
F_CONTEXT *stacks = stack_chain;
|
||||||
|
|
||||||
|
@ -160,11 +162,11 @@ void copy_roots(void)
|
||||||
copy_handle(&stacks->catchstack_save);
|
copy_handle(&stacks->catchstack_save);
|
||||||
copy_handle(&stacks->current_callback_save);
|
copy_handle(&stacks->current_callback_save);
|
||||||
|
|
||||||
if(!performing_compaction)
|
|
||||||
mark_active_blocks(stacks);
|
mark_active_blocks(stacks);
|
||||||
|
|
||||||
stacks = stacks->next;
|
stacks = stacks->next;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
for(i = 0; i < USER_ENV; i++)
|
for(i = 0; i < USER_ENV; i++)
|
||||||
|
|
Loading…
Reference in New Issue