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>
Fri, 18 Nov 2016 06:18:39 +0000 (22:18 -0800)
commit654a34e72e28bfa52f26ed0be3bef63dfb50bba6
tree0a2198463ee176e29a20a55413eac561e35b4c0a
parentcc50f9628431c13c556de8e54788264a5f653f54
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