{
if (keepalive_stacks)
return;
- MONO_GC_REGISTER_ROOT (keepalive_stacks);
+ MONO_GC_REGISTER_ROOT_PINNING (keepalive_stacks);
keepalive_stacks = mono_g_hash_table_new (NULL, NULL);
}
if (cont->domain)
return mono_get_exception_argument ("cont", "Already marked");
- jit_tls = TlsGetValue (mono_jit_tls_id);
+ jit_tls = mono_native_tls_get_value (mono_jit_tls_id);
lmf = mono_get_lmf();
cont->domain = mono_domain_get ();
cont->thread_id = GetCurrentThreadId ();
ctx = new_ctx;
if (endloop)
break;
- if (strcmp (ji->method->name, "Mark") == 0)
+ if (strcmp (jinfo_get_method (ji)->name, "Mark") == 0)
endloop = TRUE;
} while (1);
cont->top_sp = MONO_CONTEXT_GET_SP (&ctx);
- /*g_print ("method: %s, sp: %p\n", ji->method->name, cont->top_sp);*/
+ /*g_print ("method: %s, sp: %p\n", jinfo_get_method (ji)->name, cont->top_sp);*/
return NULL;
}
if (cont->saved_stack && num_bytes <= cont->stack_alloc_size) {
/* clear to avoid GC retention */
- if (num_bytes < cont->stack_used_size)
+ if (num_bytes < cont->stack_used_size) {
memset ((char*)cont->saved_stack + num_bytes, 0, cont->stack_used_size - num_bytes);
+ }
+ cont->stack_used_size = num_bytes;
} else {
tasklets_lock ();
internal_init ();