[uim-commit] r1760 - branches/r5rs/sigscheme
yamaken at freedesktop.org
yamaken at freedesktop.org
Mon Oct 3 02:32:31 PDT 2005
Author: yamaken
Date: 2005-10-03 02:32:28 -0700 (Mon, 03 Oct 2005)
New Revision: 1760
Modified:
branches/r5rs/sigscheme/operations-srfi34.c
Log:
* sigscheme/operations-srfi34.c
- (ScmOp_SRFI34_with_exception_handler): Fix function type for
DECLARE_FUNCTION
- (ScmExp_SRFI34_guard): Fix unsafe argument handling
Modified: branches/r5rs/sigscheme/operations-srfi34.c
===================================================================
--- branches/r5rs/sigscheme/operations-srfi34.c 2005-10-03 08:56:44 UTC (rev 1759)
+++ branches/r5rs/sigscheme/operations-srfi34.c 2005-10-03 09:32:28 UTC (rev 1760)
@@ -102,7 +102,7 @@
jmp_buf jmpenv;
ScmObj ret = SCM_FALSE;
ScmObj cont = Scm_NewContinuation();
- DECLARE_FUNCTION("with-exception-handler", ProcedureFixed);
+ DECLARE_FUNCTION("with-exception-handler", ProcedureFixed2);
ASSERT_PROCEDUREP(handler);
ASSERT_PROCEDUREP(thunk);
@@ -125,21 +125,22 @@
return ret;
}
-/* FIXME:
- * - Simplify with POP_ARG macros
- */
ScmObj ScmExp_SRFI34_guard(ScmObj var_and_clauses, ScmObj body, ScmObj env)
{
/* (guard (var clauses) body) */
jmp_buf jmpenv;
- ScmObj var = CAR(var_and_clauses);
- ScmObj clauses = CDR(var_and_clauses);
+ ScmObj var = SCM_FALSE;
+ ScmObj clauses = SCM_FALSE;
ScmObj expr = SCM_FALSE;
ScmObj cont = Scm_NewContinuation();
DECLARE_FUNCTION("guard", SyntaxVariadic1);
ASSERT_SYMBOLP(var);
+ ASSERT_CONSP(var_and_clauses);
+ var = CAR(var_and_clauses);
+ clauses = CDR(var_and_clauses);
+
/* check if return from "raise" */
CONTINUATION_SET_JMPENV(cont, &jmpenv);
if (setjmp(CONTINUATION_JMPENV(cont))) {
More information about the uim-commit
mailing list