From bb47cb244f2aeeccca704f3861efe227123b2e0c Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Wed, 25 Jan 2012 19:12:36 +0400 Subject: 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. --- fnlz_mlc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'fnlz_mlc.c') diff --git a/fnlz_mlc.c b/fnlz_mlc.c index 8626b0f3..b43569a0 100644 --- a/fnlz_mlc.c +++ b/fnlz_mlc.c @@ -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) -- cgit v1.2.1