From 2127e9a844ae46cb2149e7c38eb9f4345075f6e4 Mon Sep 17 00:00:00 2001 From: Damien George Date: Wed, 14 Jan 2015 00:11:09 +0000 Subject: 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. --- unix/gccollect.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'unix/gccollect.c') diff --git a/unix/gccollect.c b/unix/gccollect.c index 16bfc3b486..52dac01bd2 100644 --- a/unix/gccollect.c +++ b/unix/gccollect.c @@ -31,8 +31,6 @@ #if MICROPY_ENABLE_GC -extern char *stack_top; - #if MICROPY_GCREGS_SETJMP #include @@ -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"); -- cgit v1.2.3