pingou / rpms / gc

Forked from rpms/gc 6 years ago
Clone
Blob Blame History Raw
diff -up gc-7.1/thread_local_alloc.c.dont_add_byte gc-7.1/thread_local_alloc.c
--- gc-7.1/thread_local_alloc.c.dont_add_byte	2007-10-24 19:22:37.000000000 -0500
+++ gc-7.1/thread_local_alloc.c	2008-09-08 06:53:20.000000000 -0500
@@ -291,14 +291,16 @@ void GC_mark_thread_local_fls_for(GC_tlf
     ptr_t q;
     int j;
     
-    for (j = 1; j < TINY_FREELISTS; ++j) {
+    for (j = 0; j < TINY_FREELISTS; ++j) {
       q = p -> ptrfree_freelists[j];
       if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
       q = p -> normal_freelists[j];
       if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
 #     ifdef GC_GCJ_SUPPORT
-        q = p -> gcj_freelists[j];
-        if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
+      if (j > 0) {
+         q = p -> gcj_freelists[j];
+         if ((word)q > HBLKSIZE) GC_set_fl_marks(q);
+      }
 #     endif /* GC_GCJ_SUPPORT */
     }
 }