summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--eval.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index b3509a78..ff8c5c45 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2015-05-12 Kaz Kylheku <kaz@kylheku.com>
+ * eval.c (env_vb_to_fb): Allow null env argument. This
+ case occurs when (flet () ...) is expanded.
+
+2015-05-12 Kaz Kylheku <kaz@kylheku.com>
+
DWIM places must use Lisp-1 semantics.
This really only affects code which does something like
diff --git a/eval.c b/eval.c
index c82b4e34..beecc139 100644
--- a/eval.c
+++ b/eval.c
@@ -139,9 +139,11 @@ val env_vbind(val env, val sym, val obj)
static void env_vb_to_fb(val env)
{
- type_check(env, ENV);
- env->e.fbindings = env->e.vbindings;
- env->e.vbindings = nil;
+ if (env) {
+ type_check(env, ENV);
+ env->e.fbindings = env->e.vbindings;
+ env->e.vbindings = nil;
+ }
}
noreturn static val eval_error(val form, val fmt, ...)