altos/lisp: Deal with memory compation in the middle of operations
authorKeith Packard <keithp@keithp.com>
Fri, 11 Nov 2016 07:29:21 +0000 (23:29 -0800)
committerKeith Packard <keithp@keithp.com>
Mon, 20 Feb 2017 19:16:50 +0000 (11:16 -0800)
commit7da6bfc195fad97e3afc576c609897c131fd4d8c
tree14bd1b100b490bff43794767b70160545c76557b
parent137898e3431d887e75b09d8c1ce57297a1558e43
altos/lisp: Deal with memory compation in the middle of operations

Handle memory compaction in places where we've got pointers into the
heap across an allocation operation. Either re-compute the values from
managed global references or add new roots across the allocation.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/lisp/ao_lisp.h
src/lisp/ao_lisp_atom.c
src/lisp/ao_lisp_cons.c
src/lisp/ao_lisp_eval.c
src/lisp/ao_lisp_frame.c
src/lisp/ao_lisp_lambda.c
src/lisp/ao_lisp_mem.c