[uim-commit] r2090 - in branches/r5rs/sigscheme: . test

yamaken at freedesktop.org yamaken at freedesktop.org
Tue Nov 8 09:32:18 PST 2005


Author: yamaken
Date: 2005-11-08 09:32:14 -0800 (Tue, 08 Nov 2005)
New Revision: 2090

Modified:
   branches/r5rs/sigscheme/eval.c
   branches/r5rs/sigscheme/test/test-exp.scm
Log:
* sigscheme/eval.c
  - (ScmExp_cond): Fix the SEGV on invalid (#t =>) clause
* sigscheme/test/test-exp.scm
  - Change status of the 3 SEGV'ed tests to FAILED


Modified: branches/r5rs/sigscheme/eval.c
===================================================================
--- branches/r5rs/sigscheme/eval.c	2005-11-08 17:24:02 UTC (rev 2089)
+++ branches/r5rs/sigscheme/eval.c	2005-11-08 17:32:14 UTC (rev 2090)
@@ -985,7 +985,7 @@
              * returned by this procedure is returned by the cond expression.
              */
             /* FIXME: remove expensive Scm_Intern() */
-            if (EQ(Scm_Intern("=>"), CAR(exps))) {
+            if (EQ(Scm_Intern("=>"), CAR(exps)) && !NULLP(CDR(exps))) {
                 proc = EVAL(CADR(exps), env);
                 if (FALSEP(ScmOp_procedurep(proc)))
                     ERR_OBJ("the value of exp after => must be the procedure but got", proc);

Modified: branches/r5rs/sigscheme/test/test-exp.scm
===================================================================
--- branches/r5rs/sigscheme/test/test-exp.scm	2005-11-08 17:24:02 UTC (rev 2089)
+++ branches/r5rs/sigscheme/test/test-exp.scm	2005-11-08 17:32:14 UTC (rev 2090)
@@ -101,18 +101,18 @@
                    (lambda ()
                      (cond
                       (else)))))
-;; SEGV
+;; FAILED
 (assert-error  "cond invalid form #6"
                (lambda ()
                  (cond
                   (#t =>))))
-;; SEGV
+;; FAILED
 (assert-error  "cond invalid form #7"
                (lambda ()
                  (cond
                   (#t =>)
                   (else #t))))
-;; SEGV
+;; FAILED
 (assert-error  "cond invalid form #8"
                (lambda ()
                  (cond



More information about the uim-commit mailing list