diff options
Diffstat (limited to 'includes/rts/storage/Closures.h')
-rw-r--r-- | includes/rts/storage/Closures.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/includes/rts/storage/Closures.h b/includes/rts/storage/Closures.h index 1eef182908..09e702149a 100644 --- a/includes/rts/storage/Closures.h +++ b/includes/rts/storage/Closures.h @@ -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 |