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.
Loading
Please register or sign in to comment