allow copying a chunk of floats to a list in a single operation. Also
improve performance of sum out operation on arrays.
This commit is contained in:
10
C/heapgc.c
10
C/heapgc.c
@@ -3432,6 +3432,16 @@ compact_heap( USES_REGS1 )
|
||||
*dest++ = *current++;
|
||||
}
|
||||
*old_dest = *current;
|
||||
/* if we have are calling from the C-interface,
|
||||
we may have an open array when we start the gc */
|
||||
if (LOCAL_OpenArray) {
|
||||
CELL *start = current + (dest-old_dest);
|
||||
if (LOCAL_OpenArray < current &&
|
||||
LOCAL_OpenArray > start) {
|
||||
UInt off = LOCAL_OpenArray-start;
|
||||
LOCAL_OpenArray = old_dest+off;
|
||||
}
|
||||
}
|
||||
*dest++ = EndSpecials;
|
||||
#ifdef DEBUG
|
||||
found_marked += (dest-old_dest);
|
||||
|
Reference in New Issue
Block a user