summaryrefslogtreecommitdiff
path: root/fnlz_mlc.c
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2017-11-30 01:18:19 +0300
committerIvan Maidanski <ivmai@mail.ru>2017-11-30 01:18:19 +0300
commitd27007c5d8fcad61643b6c8725cccdf0bfd7d7d0 (patch)
tree12e214875902431fcded8bf5c75cc6848430d4c4 /fnlz_mlc.c
parent218bfbfa67e665897b57259b367a8ded16a2c095 (diff)
downloadbdwgc-d27007c5d8fcad61643b6c8725cccdf0bfd7d7d0.tar.gz
Remove done_init static variable from fnlz_mlc.c
(code refactoring) GC_init_finalized_malloc!=0 is used instead of boolean done_init. * fnlz_mlc.c [ENABLE_DISCLAIM] (done_init): Remove static variable. * fnlz_mlc.c [ENABLE_DISCLAIM] (GC_init_finalized_malloc, GC_finalized_malloc): Use GC_finalized_kind instead of done_init. * fnlz_mlc.c [ENABLE_DISCLAIM] (GC_init_finalized_malloc): Add assertion that the result of GC_new_kind_inner() is non-zero.
Diffstat (limited to 'fnlz_mlc.c')
-rw-r--r--fnlz_mlc.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/fnlz_mlc.c b/fnlz_mlc.c
index fdab2124..f08e5360 100644
--- a/fnlz_mlc.c
+++ b/fnlz_mlc.c
@@ -48,19 +48,16 @@ STATIC int GC_CALLBACK GC_finalized_disclaim(void *obj)
return 0;
}
-static GC_bool done_init = FALSE;
-
GC_API void GC_CALL GC_init_finalized_malloc(void)
{
DCL_LOCK_STATE;
GC_init(); /* In case it's not already done. */
LOCK();
- if (done_init) {
+ if (GC_finalized_kind != 0) {
UNLOCK();
return;
}
- done_init = TRUE;
/* The finalizer closure is placed in the first word in order to */
/* use the lower bits to distinguish live objects from objects on */
@@ -71,6 +68,7 @@ GC_API void GC_CALL GC_init_finalized_malloc(void)
GC_finalized_kind = GC_new_kind_inner(GC_new_free_list_inner(),
GC_DS_LENGTH, TRUE, TRUE);
+ GC_ASSERT(GC_finalized_kind != 0);
GC_register_disclaim_proc(GC_finalized_kind, GC_finalized_disclaim, TRUE);
UNLOCK();
}
@@ -88,7 +86,7 @@ GC_API GC_ATTR_MALLOC void * GC_CALL GC_finalized_malloc(size_t lb,
{
word *op;
- GC_ASSERT(done_init);
+ GC_ASSERT(GC_finalized_kind != 0);
op = GC_malloc_kind(SIZET_SAT_ADD(lb, sizeof(word)), GC_finalized_kind);
if (EXPECT(NULL == op, FALSE))
return NULL;