Fix disclaim_test failure in case of GC_DEBUG
authorIvan Maidanski <ivmai@mail.ru>
Fri, 21 Sep 2018 06:56:23 +0000 (09:56 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 21 Sep 2018 06:56:23 +0000 (09:56 +0300)
(fix of commit 21312a0)

* fnlz_mlc.c [ENABLE_DISCLAIM]: Include dbg_mlc.h.
* fnlz_mlc.c [ENABLE_DISCLAIM] (GC_init_finalized_malloc): Call
GC_register_displacement_inner(sizeof(oh)+FINALIZER_CLOSURE_FLAG).

fnlz_mlc.c

index 7728ca1..1e1a6ed 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "gc_disclaim.h"
 #include "gc_inline.h" /* for GC_malloc_kind */
+#include "private/dbg_mlc.h" /* for oh type */
 
 STATIC int GC_finalized_kind = 0;
 
@@ -70,6 +71,7 @@ GC_API void GC_CALL GC_init_finalized_malloc(void)
     /* And, the pointer to the finalizer closure object itself is       */
     /* displaced due to baking in this indicator.                       */
     GC_register_displacement_inner(FINALIZER_CLOSURE_FLAG);
+    GC_register_displacement_inner(sizeof(oh) + FINALIZER_CLOSURE_FLAG);
 
     GC_finalized_kind = GC_new_kind_inner(GC_new_free_list_inner(),
                                           GC_DS_LENGTH, TRUE, TRUE);