# endif
};
-# ifdef GC_ATOMIC_UNCOLLECTABLE
-# ifdef STUBBORN_ALLOC
-# define GC_N_KINDS_INITIAL_VALUE 5
-# else
-# define GC_N_KINDS_INITIAL_VALUE 4
-# endif
+#if 0
+# ifdef STUBBORN_ALLOC
+# define GC_N_KINDS_INITIAL_VALUE (STUBBORN+1)
# else
-# ifdef STUBBORN_ALLOC
-# define GC_N_KINDS_INITIAL_VALUE 4
-# else
-# define GC_N_KINDS_INITIAL_VALUE 3
-# endif
-# endif /* !GC_ATOMIC_UNCOLLECTABLE */
+# define GC_N_KINDS_INITIAL_VALUE STUBBORN
+# endif
+#endif
+/* TODO: Add new API function to allocate kinds in range */
+/* GC_N_KINDS_INITIAL_VALUE .. PREDEFINED_KINDS-1 (if any) */
+/* which do not need allocation of a free list. */
-GC_INNER unsigned GC_n_kinds = GC_N_KINDS_INITIAL_VALUE;
+GC_INNER unsigned GC_n_kinds = PREDEFINED_KINDS;
# ifndef INITIAL_MARK_STACK_SIZE
# define INITIAL_MARK_STACK_SIZE (1*HBLKSIZE)