summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-11-10 23:29:21 -0800
committerKeith Packard <keithp@keithp.com>2016-11-17 22:18:39 -0800
commit654a34e72e28bfa52f26ed0be3bef63dfb50bba6 (patch)
tree0a2198463ee176e29a20a55413eac561e35b4c0a /src/lisp/ao_lisp.h
parentcc50f9628431c13c556de8e54788264a5f653f54 (diff)
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>
Diffstat (limited to 'src/lisp/ao_lisp.h')
-rw-r--r--src/lisp/ao_lisp.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/lisp/ao_lisp.h b/src/lisp/ao_lisp.h
index 6122a2ed..60a97f2c 100644
--- a/src/lisp/ao_lisp.h
+++ b/src/lisp/ao_lisp.h
@@ -510,8 +510,8 @@ ao_lisp_frame_ref(struct ao_lisp_frame *frame, ao_poly atom);
struct ao_lisp_frame *
ao_lisp_frame_new(int num);
-struct ao_lisp_frame *
-ao_lisp_frame_add(struct ao_lisp_frame *frame, ao_poly atom, ao_poly val);
+int
+ao_lisp_frame_add(struct ao_lisp_frame **frame, ao_poly atom, ao_poly val);
void
ao_lisp_frame_print(ao_poly p);
@@ -538,8 +538,7 @@ ao_poly
ao_lisp_macro(struct ao_lisp_cons *cons);
ao_poly
-ao_lisp_lambda_eval(struct ao_lisp_lambda *lambda,
- struct ao_lisp_cons *cons);
+ao_lisp_lambda_eval(void);
/* error */