Esempio n. 1
0
template <typename Fixup> void slot_visitor<Fixup>::visit_contexts() {
  std::set<context*>::const_iterator begin = parent->active_contexts.begin();
  std::set<context*>::const_iterator end = parent->active_contexts.end();
  while (begin != end) {
    context* ctx = *begin;

    visit_stack_elements(ctx->datastack_seg, (cell*)ctx->datastack);
    visit_stack_elements(ctx->retainstack_seg, (cell*)ctx->retainstack);
    visit_object_array(ctx->context_objects,
                       ctx->context_objects + context_object_count);
    visit_callstack(ctx);
    begin++;
  }
}
Esempio n. 2
0
void slot_visitor<Visitor>::visit_contexts()
{
	context *ctx = parent->ctx;

	while(ctx)
	{
		visit_stack_elements(ctx->datastack_region,(cell *)ctx->datastack);
		visit_stack_elements(ctx->retainstack_region,(cell *)ctx->retainstack);

		visit_handle(&ctx->catchstack_save);
		visit_handle(&ctx->current_callback_save);

		ctx = ctx->next;
	}
}