]> granicus.if.org Git - gc/commit
Fix GC_new_kind in case of client-defined PREDEFINED_KINDS
authorIvan Maidanski <ivmai@mail.ru>
Sat, 30 Apr 2016 22:07:53 +0000 (01:07 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Thu, 23 Jun 2016 21:07:52 +0000 (00:07 +0300)
commit0d4d41f1e2b12c1321cb37e2bcbe07c8bb089a2d
tree84a8c640d0e2c5c23944b4898ddfe8862f6c39fe
parentbbb997891669d9531582e40e58d36069fd8ad583
Fix GC_new_kind in case of client-defined PREDEFINED_KINDS

There are 2 types of kinds - "pre-allocated" ones (with the number less
than PREDEFINED_KINDS) which have pre-allocated free lists and object
allocation for these kinds is dealt by GC_malloc_kind typically,
and "custom" kinds which require the client to supply the free list
(e.g., allocated by GC_new_free_list[_inner]) and arrange own object
allocation procedure.
By design, GC_new_kind[_inner] creates new "custom" kind.

* mark.c (GC_N_KINDS_INITIAL_VALUE): Simplify and comment out (for now).
* mark.c (GC_n_kinds): Initialize to PREDEFINED_KINDS (instead of
GC_N_KINDS_INITIAL_VALUE); add TODO item.
mark.c