diff options
Diffstat (limited to 'byterun/compact.c')
-rw-r--r-- | byterun/compact.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/byterun/compact.c b/byterun/compact.c index 22da4862a..68054d4af 100644 --- a/byterun/compact.c +++ b/byterun/compact.c @@ -15,6 +15,7 @@ #include <string.h> #include "config.h" +#include "finalise.h" #include "freelist.h" #include "gc.h" #include "gc_ctrl.h" @@ -182,8 +183,10 @@ void compact_heap (void) Don't forget roots and weak pointers. */ { /* Invert roots first because the threads library needs some heap - data structures to find its roots. */ + data structures to find its roots. Fortunately, it doesn't need + the headers (see above). */ do_roots (invert_root); + final_do_weak_roots (invert_root); ch = heap_start; while (ch != NULL){ |