altos/lisp: re-use small frames
authorKeith Packard <keithp@keithp.com>
Wed, 16 Nov 2016 04:18:59 +0000 (20:18 -0800)
committerKeith Packard <keithp@keithp.com>
Fri, 18 Nov 2016 06:18:39 +0000 (22:18 -0800)
commitddb16207e736647ee5b1f023c1b8810effa18234
treeaddbe49cb4dc694fe55207a732bb0e0fcfd8d59b
parent8e4d467b21b0df987234cd7fd09d763021c6e288
altos/lisp: re-use small frames

This saves a pile more use of the allocator by noting when frames have
not been referenced from another frame and freeing them when they go
out of scope. Frames with references are left to the allocator to deal
with.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/lisp/ao_lisp.h
src/lisp/ao_lisp_atom.c
src/lisp/ao_lisp_error.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