diff options
author | Ivan Maidanski <ivmai@mail.ru> | 2012-01-25 19:12:36 +0400 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2012-01-25 19:12:36 +0400 |
commit | bb47cb244f2aeeccca704f3861efe227123b2e0c (patch) | |
tree | 96ac153852f806f8b0bceb85aabfb95d7b646e5f /fnlz_mlc.c | |
parent | c25520ae92f034a05912c8c14248c8fb3c174f1c (diff) | |
download | bdwgc-bb47cb244f2aeeccca704f3861efe227123b2e0c.tar.gz |
Move GC_register_disclaim_proc to fnlz_mlc
* misc.c (GC_register_disclaim_proc): Move definition to fnlz_mlc.c
(to minimize linked code size in case "disclaim" finalization is
unused).
* misc.c: Do not include gc_disclaim.h.
* fnlz_mlc.c (GC_register_disclaim_proc): Add GC_ASSERT for kind
passed by the client.
Diffstat (limited to 'fnlz_mlc.c')
-rw-r--r-- | fnlz_mlc.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -71,6 +71,16 @@ GC_API void GC_CALL GC_init_finalized_malloc(void) UNLOCK(); } +GC_API void GC_CALL GC_register_disclaim_proc(int kind, GC_disclaim_proc proc, + void *cd, + int mark_unconditionally) +{ + GC_ASSERT((unsigned)kind < MAXOBJKINDS); + GC_obj_kinds[kind].ok_disclaim_proc = proc; + GC_obj_kinds[kind].ok_disclaim_cd = cd; + GC_obj_kinds[kind].ok_mark_unconditionally = (GC_bool)mark_unconditionally; +} + #ifdef THREAD_LOCAL_ALLOC STATIC void * GC_core_finalized_malloc(size_t lb, const struct GC_finalizer_closure *fclos) |