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

Add test T17747

Closes issue #17747

Test that we can allocate ByteArray#s outside of the HEAP_ALLOCED()
address space without upsetting the GC. To be extra sure we attach weak
pointers with C finalizers to the ByteArray#s. We keep them alive and
run a major GC so that the GC has to trace the live ByteArray#s.

Prior to the first patch in this series, doing this would upset the GC
because the GC does not expect heap objects with closure type ARR_WORDS
to exist outside the GC heap.

> internal error: evacuate(static): strange closure type 42

Finally we allow everything to be GC'd again, and check that the C
finalizers did run.

This feature also required a change to the isByteArrayPinned# which
itself required a CMM implementation of the HEAP_ALLOCED system. So we
also add a check that the CMM and C implementations of HEAP_ALLOCED
agree with each other.
parent 8c0a8732
No related branches found
No related tags found
Loading
Loading
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