Skip to content
Snippets Groups Projects
Commit 75d5a448 authored by Duncan Coutts's avatar Duncan Coutts Committed by Reinier Maas
Browse files

Permit ARR_WORDS closures outside HEAP_ALLOCED space

In the GC, evacuate() is prepared to deal with some heap objects that
are not in the HEAP_ALLOCED() memory space. These are mainly the heap
objects that GHC puts into the data sections of object files.

It is also useful however to allow ByteArray# and MutableByteArray#
heap objects to appear outside of the HEAP_ALLOCED() memory space. These
have the ARR_WORDS closure type and contain no pointer should be easy to
deal with. Indeed evacuate() already deals with closure types for
constructors containing no pointers by doing nothing.

So we just tack the ARR_WORDS case into this group of closure types that
are permitted outside the HEAP_ALLOCED area but otherwise ignored.
parent 9ea90ed2
No related branches found
No related tags found
No related merge requests found
......@@ -741,6 +741,7 @@ loop:
case CONSTR_0_1:
case CONSTR_0_2:
case CONSTR_NOCAF:
case ARR_WORDS:
/* no need to put these on the static linked list, they don't need
* to be scavenged.
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment