summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_save.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-11-14 21:25:38 -0800
committerKeith Packard <keithp@keithp.com>2016-11-17 22:18:39 -0800
commitc0a56550cf647a1647392557e82bcaa96934cd51 (patch)
treefe72c38d0dbc28626320bc41219f4d90a6254131 /src/lisp/ao_lisp_save.c
parent65fcd6afa22bfefb61420e668c16632657eb8b4f (diff)
altos/lisp: Cache freed cons and stack items
Track freed cons cells and stack items from the eval process where possible so that they can be re-used without needing to collect. This dramatically reduces the number of collect calls. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lisp/ao_lisp_save.c')
-rw-r--r--src/lisp/ao_lisp_save.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lisp/ao_lisp_save.c b/src/lisp/ao_lisp_save.c
index 030846b7..d5f28e7d 100644
--- a/src/lisp/ao_lisp_save.c
+++ b/src/lisp/ao_lisp_save.c
@@ -27,7 +27,7 @@ ao_lisp_save(struct ao_lisp_cons *cons)
os->atoms = ao_lisp_atom_poly(ao_lisp_atoms);
os->globals = ao_lisp_frame_poly(ao_lisp_frame_global);
os->const_checksum = ao_lisp_const_checksum;
- os->const_checksum_inv = ~ao_lisp_const_checksum;
+ os->const_checksum_inv = (uint16_t) ~ao_lisp_const_checksum;
if (ao_lisp_os_save())
return _ao_lisp_atom_t;