When doing code heap compaction, don't scan stacks as roots since we're going to exit anyway

db4
Slava Pestov 2009-04-18 03:25:51 -05:00
parent e811dd6192
commit 8baaf04ac5
1 changed files with 12 additions and 10 deletions

View File

@ -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++)