diff options
Diffstat (limited to 'includes/rts/storage/Closures.h')
-rw-r--r-- | includes/rts/storage/Closures.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/includes/rts/storage/Closures.h b/includes/rts/storage/Closures.h index 2302b7d2a1..09e702149a 100644 --- a/includes/rts/storage/Closures.h +++ b/includes/rts/storage/Closures.h @@ -80,7 +80,7 @@ typedef struct { typedef struct StgClosure_ { StgHeader header; struct StgClosure_ *payload[FLEXIBLE_ARRAY]; -} *StgClosurePtr; // StgClosure defined in Rts.h +} *StgClosurePtr; // StgClosure defined in rts/Types.h typedef struct { StgThunkHeader header; @@ -191,17 +191,21 @@ typedef struct _StgStableName { typedef struct _StgWeak { /* Weak v */ StgHeader header; - StgClosure *cfinalizer; + StgClosure *cfinalizers; StgClosure *key; StgClosure *value; /* v */ StgClosure *finalizer; struct _StgWeak *link; } StgWeak; -typedef struct _StgDeadWeak { /* Weak v */ +typedef struct _StgCFinalizerList { StgHeader header; - struct _StgWeak *link; -} StgDeadWeak; + StgClosure *link; + void (*fptr)(void); + void *ptr; + void *eptr; + StgWord flag; /* has environment (0 or 1) */ +} StgCFinalizerList; /* Byte code objects. These are fixed size objects with pointers to * four arrays, designed so that a BCO can be easily "re-linked" to |