on master help sign in
Implement second part of FORCE_ALIGNMENT fix for arduino targets.
376db08XeFias
rts/idris_gc.c+10−1
@@ -73,7 +73,16 @@ VAL copy(VM* vm, VAL x) {
73void cheney(VM *vm) {
73void cheney(VM *vm) {
74 int i;
74 int i;
75 int ar;
75 int ar;
76+ char* scan = NULL;
77+
78+#ifdef FORCE_ALIGNMENT
79+ if (((i_int)(vm->heap.heap)&1) == 1) {
80+ scan = vm->heap.heap + 1;
81+ } else
82+#endif
83+ {
76− char* scan = vm->heap.heap;
84+ scan = vm->heap.heap;
85+ }
77
86
78 while(scan < vm->heap.next) {
87 while(scan < vm->heap.next) {
79 size_t inc = *((size_t*)scan);
88 size_t inc = *((size_t*)scan);