summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorDavid Eichmann <EichmannD@gmail.com>2020-11-06 16:01:33 +0000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-11-10 10:27:35 -0500
commit7814cd5bb0d145c4d83d7566885bdc3992b63d0c (patch)
tree205f5a29b4e340d25d78e7c9e4b73a2f80d4db2d /includes
parent4c407f6e71f096835f8671e2d3ea6bda38074314 (diff)
downloadhaskell-7814cd5bb0d145c4d83d7566885bdc3992b63d0c.tar.gz
ghc-heap: expose decoding from heap representation
Co-authored-by: Sven Tennie <sven.tennie@gmail.com> Co-authored-by: Matthew Pickering <matthewtpickering@gmail.com> Co-authored-by: Ben Gamari <bgamari.foss@gmail.com>
Diffstat (limited to 'includes')
-rw-r--r--includes/rts/storage/Heap.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/includes/rts/storage/Heap.h b/includes/rts/storage/Heap.h
index 2e908279bf..7a35941656 100644
--- a/includes/rts/storage/Heap.h
+++ b/includes/rts/storage/Heap.h
@@ -16,3 +16,12 @@ void heap_view_closure_ptrs_in_pap_payload(StgClosure *ptrs[], StgWord *nptrs
, StgClosure *fun, StgClosure **payload, StgWord size);
StgWord heap_view_closureSize(StgClosure *closure);
+
+/*
+ * Collect the pointers of a closure into the given array. `size` should be
+ * large enough to hold all collected pointers e.g.
+ * `heap_view_closureSize(closure)`. Returns the number of pointers collected.
+ * The caller must ensure that `closure` is not modified (or moved by the GC)
+ * for the duration of the call to `collect_pointers`.
+ */
+StgWord collect_pointers(StgClosure *closure, StgWord size, StgClosure *ptrs[]);