39 lines
1.3 KiB
Diff
39 lines
1.3 KiB
Diff
|
Index: boehm-gc/finalize.c
|
||
|
===================================================================
|
||
|
--- boehm-gc/finalize.c.orig 2007-03-11 13:17:59.000000000 +0100
|
||
|
+++ boehm-gc/finalize.c 2010-07-01 16:26:16.000000000 +0200
|
||
|
@@ -165,6 +165,7 @@ signed_word * log_size_ptr;
|
||
|
int index;
|
||
|
struct disappearing_link * new_dl;
|
||
|
DCL_LOCK_STATE;
|
||
|
+ struct disappearing_link *** dl_head_adr = &dl_head;
|
||
|
|
||
|
if ((word)link & (ALIGNMENT-1))
|
||
|
ABORT("Bad arg to GC_general_register_disappearing_link");
|
||
|
@@ -177,7 +178,7 @@ signed_word * log_size_ptr;
|
||
|
# ifndef THREADS
|
||
|
DISABLE_SIGNALS();
|
||
|
# endif
|
||
|
- GC_grow_table((struct hash_chain_entry ***)(&dl_head),
|
||
|
+ GC_grow_table((struct hash_chain_entry ***)dl_head_adr,
|
||
|
&log_dl_table_size);
|
||
|
# ifdef CONDPRINT
|
||
|
if (GC_print_stats) {
|
||
|
@@ -348,6 +349,7 @@ finalization_mark_proc * mp;
|
||
|
struct finalizable_object *new_fo;
|
||
|
hdr *hhdr;
|
||
|
DCL_LOCK_STATE;
|
||
|
+ struct finalizable_object *** fo_head_adr = &fo_head;
|
||
|
|
||
|
# ifdef THREADS
|
||
|
DISABLE_SIGNALS();
|
||
|
@@ -358,7 +360,7 @@ finalization_mark_proc * mp;
|
||
|
# ifndef THREADS
|
||
|
DISABLE_SIGNALS();
|
||
|
# endif
|
||
|
- GC_grow_table((struct hash_chain_entry ***)(&fo_head),
|
||
|
+ GC_grow_table((struct hash_chain_entry ***)fo_head_adr,
|
||
|
&log_fo_table_size);
|
||
|
# ifdef CONDPRINT
|
||
|
if (GC_print_stats) {
|