From cd7e2af0fef19cf3489805a39c9c9ccfe3712f16 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Fri, 18 Feb 2011 22:37:46 +0000 Subject: [PATCH] In eval_form(), avoid bytecompiling constant forms. --- src/c/compiler.d | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/c/compiler.d b/src/c/compiler.d index fc1142043..54825ff73 100644 --- a/src/c/compiler.d +++ b/src/c/compiler.d @@ -2235,7 +2235,7 @@ for special form ~S.", 1, function); } static void -eval_form(cl_env_ptr env, cl_object form) { +eval_nontrivial_form(cl_env_ptr env, cl_object form) { const cl_compiler_ptr old_c_env = env->c_env; struct cl_compiler_env new_c_env = *old_c_env; cl_index handle; @@ -2265,6 +2265,16 @@ eval_form(cl_env_ptr env, cl_object form) { env->c_env = old_c_env; } +static void +eval_form(cl_env_ptr env, cl_object form) { + if (ECL_LISTP(form) || ECL_SYMBOLP(form)) { + eval_nontrivial_form(env, form); + } else { + env->values[0] = form; + env->nvalues = 1; + } +} + static int compile_toplevel_body(cl_env_ptr env, cl_object body, int flags) { const cl_compiler_ptr c_env = env->c_env;