altos/lisp: Add continuations
[fw/altos] / src / lisp / ao_lisp_lambda.c
index e2053a6f3d4302e15e17c75c3dfe21cc8be90258..656936cb88c691b10077b5543fb2693d56dfbe34 100644 (file)
@@ -175,7 +175,8 @@ ao_lisp_lambda_eval(void)
                        args = ao_lisp_poly_cons(args->cdr);
                        vals = ao_lisp_poly_cons(vals->cdr);
                }
-               ao_lisp_cons_free(cons);
+               if (!ao_lisp_stack_marked(ao_lisp_stack))
+                       ao_lisp_cons_free(cons);
                cons = NULL;
                break;
        case AO_LISP_FUNC_LEXPR: