diff options
Diffstat (limited to 'rts/sm/Evac.c')
-rw-r--r-- | rts/sm/Evac.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/rts/sm/Evac.c b/rts/sm/Evac.c index f080221e28..ffcbf74762 100644 --- a/rts/sm/Evac.c +++ b/rts/sm/Evac.c @@ -27,6 +27,7 @@ #include "LdvProfile.h" #include "CNF.h" #include "Scav.h" +#include "CheckUnload.h" // n_unloaded_objects and markObjectCode #if defined(THREADED_RTS) && !defined(PARALLEL_GC) #define evacuate(p) evacuate1(p) @@ -518,6 +519,11 @@ loop: if (!HEAP_ALLOCED_GC(q)) { if (!major_gc) return; + // Note [Object unloading] in CheckUnload.c + if (n_unloaded_objects != 0) { + markObjectCode(q); + } + info = get_itbl(q); switch (info->type) { |