fix closure_sizeW_() for AP closures
authorSimon Marlow <simonmar@microsoft.com>
Wed, 14 Feb 2007 12:04:01 +0000 (12:04 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Wed, 14 Feb 2007 12:04:01 +0000 (12:04 +0000)
Since thunks grew an extra padding word in GHC 6.6, closure_sizeW()
has been wrong for AP closures because it assumed compatible layout
between PAPs and APs.  One symptom is that the compacting GC would
crash if it encountered an AP.  APs conly crop up in GHCi or
when using asynchronous exceptions.

Fixes #1010

includes/Storage.h

index 12be6d1..da24a78 100644 (file)
@@ -392,6 +392,7 @@ closure_sizeW_ (StgClosure *p, StgInfoTable *info)
     case AP_STACK:
        return ap_stack_sizeW((StgAP_STACK *)p);
     case AP:
+       return ap_sizeW((StgAP *)p);
     case PAP:
        return pap_sizeW((StgPAP *)p);
     case IND: