[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