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>2017-02-20 11:16:50 -0800
commit5557f6b87a9b8bc9716de8191f2062a772a6ae6c (patch)
tree65f437f42e7ab4b49587c7f70f4105b99409e45c /src/lisp/ao_lisp_save.c
parentce549b2c11e6b2571590021e1c0503d8a6e7a702 (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;