altos/lisp: Separate out values from atoms
[fw/altos] / src / lisp / ao_lisp_eval.c
index 2374fdb2139fadfcaa61bd230fbe01c04c600f67..6eef1f23d148f08c1b5ac4c094be412b472ef209 100644 (file)
@@ -91,7 +91,7 @@ ao_lisp_eval(ao_poly v)
                case AO_LISP_STRING:
                        break;
                case AO_LISP_ATOM:
-                       v = ao_lisp_poly_atom(v)->val;
+                       v = ao_lisp_atom_get(v);
                        break;
                }
 
@@ -187,6 +187,9 @@ ao_lisp_eval(ao_poly v)
                                DBG("stack pop: actuals"); DBG_CONS(actuals); DBG("\n");
                                DBG("stack pop: formals"); DBG_CONS(formals); DBG("\n");
                        } else {
+                               actuals = 0;
+                               formals = 0;
+                               formals_tail = 0;
                                DBG("done func\n");
                                break;
                        }