[uim-commit] r1713 - branches/r5rs/sigscheme
yamaken at freedesktop.org
yamaken at freedesktop.org
Fri Sep 30 17:03:17 PDT 2005
Author: yamaken
Date: 2005-09-30 17:02:57 -0700 (Fri, 30 Sep 2005)
New Revision: 1713
Modified:
branches/r5rs/sigscheme/operations.c
Log:
* sigscheme/operations.c
- (ScmOp_call_with_current_continuation): Make
scm_continuation_thrown_obj sweepable
Modified: branches/r5rs/sigscheme/operations.c
===================================================================
--- branches/r5rs/sigscheme/operations.c 2005-10-01 00:00:40 UTC (rev 1712)
+++ branches/r5rs/sigscheme/operations.c 2005-10-01 00:02:57 UTC (rev 1713)
@@ -1763,6 +1763,7 @@
{
int jmpret = 0;
ScmObj cont = SCM_FALSE;
+ ScmObj ret = SCM_FALSE;
if (FALSEP(ScmOp_procedurep(proc)))
SigScm_ErrorObj("call-with-current-continuation : procedure required but got ", proc);
@@ -1772,8 +1773,10 @@
/* setjmp and check result */
jmpret = setjmp(SCM_CONTINUATION_JMPENV(cont));
if (jmpret) {
- /* return by calling longjmp */
- return scm_continuation_thrown_obj;
+ /* returned from longjmp */
+ ret = scm_continuation_thrown_obj;
+ scm_continuation_thrown_obj = SCM_FALSE; /* make sweepable */
+ return ret;
}
/* execute (proc cont) */
More information about the uim-commit
mailing list