guile-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

guile/guile-core/libguile eval.c


From: Marius Vollmer
Subject: guile/guile-core/libguile eval.c
Date: Wed, 21 Feb 2001 12:14:47 -0800

CVSROOT:        /cvs
Module name:    guile
Changes by:     Marius Vollmer <address@hidden> 01/02/21 12:14:47

Modified files:
        guile-core/libguile: eval.c 

Log message:
        * eval.c (scm_ceval, scm_deval): Check for wrong number of args
        before applying arrow procedure in `cond' and before applying
        receiver procedure in call-with-current-continuation.
        (scm_i_eval): Do not invoke scm_copy_tree in argument in SCM_XEVAL
        macro.  The argument is expanded more than one time.

CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/eval.c.diff?r1=1.198&r2=1.199

Patches:
Index: guile/guile-core/libguile/eval.c
diff -u guile/guile-core/libguile/eval.c:1.198 
guile/guile-core/libguile/eval.c:1.199
--- guile/guile-core/libguile/eval.c:1.198      Fri Feb 16 07:20:00 2001
+++ guile/guile-core/libguile/eval.c    Wed Feb 21 12:14:47 2001
@@ -2005,6 +2005,8 @@
              SCM_ASRTGO (SCM_NIMP (proc), badfun);
              PREP_APPLY (proc, scm_cons (t.arg1, SCM_EOL));
              ENTER_APPLY;
+             if (scm_badformalsp (proc, 1))
+               goto umwrongnumargs;
              goto evap1;
            }
        }
@@ -2215,6 +2217,8 @@
          SCM_ASRTGO (SCM_NIMP (proc), badfun);
          PREP_APPLY (proc, scm_cons (t.arg1, SCM_EOL));
          ENTER_APPLY;
+         if (scm_badformalsp (proc, 1))
+           goto umwrongnumargs;
          goto evap1;
 
        case (SCM_ISYMNUM (SCM_IM_DELAY)):
@@ -3863,7 +3867,8 @@
   SCM transformer = scm_fluid_ref (SCM_CDR (scm_system_transformer));
   if (SCM_NIMP (transformer))
     exp = scm_apply (transformer, exp, scm_listofnull);
-  return SCM_XEVAL (scm_copy_tree (exp), env);
+  exp = scm_copy_tree (exp);
+  return SCM_XEVAL (exp, env);
 }
 
 SCM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]