summaryrefslogtreecommitdiff
path: root/rts/sm/Evac.c
diff options
context:
space:
mode:
Diffstat (limited to 'rts/sm/Evac.c')
-rw-r--r--rts/sm/Evac.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/rts/sm/Evac.c b/rts/sm/Evac.c
index 1f9c5cc8cd..1323cbea6a 100644
--- a/rts/sm/Evac.c
+++ b/rts/sm/Evac.c
@@ -548,11 +548,16 @@ loop:
evacuate_static_object(IND_STATIC_LINK((StgClosure *)q), q);
return;
- case CONSTR_STATIC:
+ case CONSTR:
+ case CONSTR_1_0:
+ case CONSTR_2_0:
+ case CONSTR_1_1:
evacuate_static_object(STATIC_LINK(info,(StgClosure *)q), q);
return;
- case CONSTR_NOCAF_STATIC:
+ case CONSTR_0_1:
+ case CONSTR_0_2:
+ case CONSTR_NOCAF:
/* no need to put these on the static linked list, they don't need
* to be scavenged.
*/
@@ -716,6 +721,7 @@ loop:
case FUN:
case CONSTR:
+ case CONSTR_NOCAF:
copy_tag_nolock(p,info,q,sizeW_fromITBL(INFO_PTR_TO_STRUCT(info)),gen_no,tag);
return;
@@ -1048,8 +1054,7 @@ selector_loop:
case CONSTR_2_0:
case CONSTR_1_1:
case CONSTR_0_2:
- case CONSTR_STATIC:
- case CONSTR_NOCAF_STATIC:
+ case CONSTR_NOCAF:
{
// check that the size is in range
ASSERT(field < (StgWord32)(info->layout.payload.ptrs +