Merge pull request #461 from knocte/xbuild_improvements
[mono.git] / mono / metadata / threads.c
index e3b9e1a569dd3eccfe36042ab9c0aea4d3de9da0..537de66bca1d8d5b783887c3aa824e69e9bb8a11 100644 (file)
@@ -751,7 +751,7 @@ MonoInternalThread* mono_thread_create_internal (MonoDomain *domain, gpointer fu
        internal->apartment_state=ThreadApartmentState_Unknown;
        internal->thread_pinning_ref = internal;
        internal->managed_id = get_next_managed_thread_id ();
-       MONO_GC_REGISTER_ROOT (internal->thread_pinning_ref);
+       MONO_GC_REGISTER_ROOT_PINNING (internal->thread_pinning_ref);
 
        internal->synch_cs = g_new0 (CRITICAL_SECTION, 1);
        InitializeCriticalSection (internal->synch_cs);
@@ -878,7 +878,7 @@ mono_thread_attach (MonoDomain *domain)
        thread->apartment_state=ThreadApartmentState_Unknown;
        thread->thread_pinning_ref = thread;
        thread->managed_id = get_next_managed_thread_id ();
-       MONO_GC_REGISTER_ROOT (thread->thread_pinning_ref);
+       MONO_GC_REGISTER_ROOT_PINNING (thread->thread_pinning_ref);
 
        thread->stack_ptr = &tid;
 
@@ -1046,7 +1046,7 @@ HANDLE ves_icall_System_Threading_Thread_Thread_internal(MonoThread *this,
                internal->handle=thread;
                internal->tid=tid;
                internal->thread_pinning_ref = internal;
-               MONO_GC_REGISTER_ROOT (internal->thread_pinning_ref);
+               MONO_GC_REGISTER_ROOT_PINNING (internal->thread_pinning_ref);
                
 
                /* Don't call handle_store() here, delay it to Start.
@@ -3699,7 +3699,7 @@ update_tls_reference_bitmap (guint32 offset, uintptr_t *bitmap, int max_set)
        offset &= 0xffffff;
        offset /= sizeof (gpointer);
        /* offset is now the bitmap offset */
-       for (i = 0; i < max_set; ++i) {
+       for (i = 0; i <= max_set; ++i) {
                if (bitmap [i / sizeof (uintptr_t)] & (1L << (i & (sizeof (uintptr_t) * 8 -1))))
                        rb [(offset + i) / (sizeof (uintptr_t) * 8)] |= (1L << ((offset + i) & (sizeof (uintptr_t) * 8 -1)));
        }