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>
Mon, 20 Feb 2017 19:16:51 +0000 (11:16 -0800)
commit881161fe1c5fb0e2b1220c30572eb2c45bedbafe
tree36070649f2e3d46de239f769cc67cc765f3b9c9a
parent994adc7a47cbf3cbf6041eca7430273f8018de08
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