summaryrefslogtreecommitdiff
path: root/includes/rts/storage/Closures.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/rts/storage/Closures.h')
-rw-r--r--includes/rts/storage/Closures.h12
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