diff options
author | David Hewson <david.hewson@tracsis.com> | 2019-05-03 22:18:10 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-05-31 01:58:47 -0400 |
commit | 284cca51f07c70c03ce602c963e22acf7333180b (patch) | |
tree | 4f7f1ac290eb056b8ad63dd97f75d49161f45732 /rts | |
parent | 08b4c81363f405bf67ff85c5d132ff5919515095 (diff) | |
download | haskell-284cca51f07c70c03ce602c963e22acf7333180b.tar.gz |
support small arrays and CONSTR_NOCAF in ghc-heap
Diffstat (limited to 'rts')
-rw-r--r-- | rts/Heap.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/rts/Heap.c b/rts/Heap.c index dfd32aff0c..f0cc3567d9 100644 --- a/rts/Heap.c +++ b/rts/Heap.c @@ -110,6 +110,7 @@ StgMutArrPtrs *heap_view_closurePtrs(Capability *cap, StgClosure *closure) { case CONSTR_1_1: case CONSTR_0_2: case CONSTR: + case CONSTR_NOCAF: case PRIM: @@ -192,6 +193,16 @@ StgMutArrPtrs *heap_view_closurePtrs(Capability *cap, StgClosure *closure) { ptrs[nptrs++] = ((StgMutArrPtrs *)closure)->payload[i]; } break; + + case SMALL_MUT_ARR_PTRS_CLEAN: + case SMALL_MUT_ARR_PTRS_DIRTY: + case SMALL_MUT_ARR_PTRS_FROZEN_CLEAN: + case SMALL_MUT_ARR_PTRS_FROZEN_DIRTY: + for (i = 0; i < ((StgSmallMutArrPtrs *)closure)->ptrs; ++i) { + ptrs[nptrs++] = ((StgSmallMutArrPtrs *)closure)->payload[i]; + } + break; + case MUT_VAR_CLEAN: case MUT_VAR_DIRTY: ptrs[nptrs++] = ((StgMutVar *)closure)->var; |