altos/lisp: Use poly stashes for stacks
[fw/altos] / src / lisp / ao_lisp_lambda.c
index e2053a6f3d4302e15e17c75c3dfe21cc8be90258..67ad24ee69296942dc0e8a240eee8c9d0e84ef66 100644 (file)
@@ -15,7 +15,6 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-#define DBG_EVAL 0
 #include "ao_lisp.h"
 
 int
@@ -175,7 +174,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: