py, unix: Trace root pointers with native emitter under unix port.
Native code has GC-heap pointers in it so it must be scanned. But on unix port memory for native functions is mmap'd, and so it must have explicit code to scan it for root pointers.
This commit is contained in:
@@ -31,8 +31,6 @@
|
||||
|
||||
#if MICROPY_ENABLE_GC
|
||||
|
||||
extern char *stack_top;
|
||||
|
||||
#if MICROPY_GCREGS_SETJMP
|
||||
#include <setjmp.h>
|
||||
|
||||
@@ -133,6 +131,7 @@ void gc_collect(void) {
|
||||
// GC stack (and regs because we captured them)
|
||||
void **regs_ptr = (void**)(void*)®s;
|
||||
gc_collect_root(regs_ptr, ((mp_uint_t)MP_STATE_VM(stack_top) - (mp_uint_t)®s) / sizeof(mp_uint_t));
|
||||
mp_unix_mark_exec();
|
||||
gc_collect_end();
|
||||
|
||||
//printf("-----\n");
|
||||
|
||||
Reference in New Issue
Block a user