[uim-commit] r1708 - branches/r5rs/sigscheme

yamaken at freedesktop.org yamaken at freedesktop.org
Fri Sep 30 15:56:25 PDT 2005


Author: yamaken
Date: 2005-09-30 15:56:23 -0700 (Fri, 30 Sep 2005)
New Revision: 1708

Modified:
   branches/r5rs/sigscheme/operations.c
   branches/r5rs/sigscheme/sigscheme.c
Log:
* sigscheme/operations.c
  - (ScmOp_call_with_current_continuation): Fix invalid type check for
    proc
* sigscheme/sigscheme.c
  - (SigScm_Initialize_internal):
    * Fix lacking variable protection for scm_continuation_thrown_obj
    * Define call/cc as alias to call-with-current-continuation when
      SCM_USE_NONSTD_FEATURES


Modified: branches/r5rs/sigscheme/operations.c
===================================================================
--- branches/r5rs/sigscheme/operations.c	2005-09-30 22:22:25 UTC (rev 1707)
+++ branches/r5rs/sigscheme/operations.c	2005-09-30 22:56:23 UTC (rev 1708)
@@ -1764,8 +1764,8 @@
     int jmpret  = 0;
     ScmObj cont = SCM_FALSE;
 
-    if (!CLOSUREP(proc))
-        SigScm_ErrorObj("call-with-current-continuation : closure required but got ", proc);
+    if (FALSEP(ScmOp_procedurep(proc)))
+        SigScm_ErrorObj("call-with-current-continuation : procedure required but got ", proc);
 
     cont = Scm_NewContinuation();
 

Modified: branches/r5rs/sigscheme/sigscheme.c
===================================================================
--- branches/r5rs/sigscheme/sigscheme.c	2005-09-30 22:22:25 UTC (rev 1707)
+++ branches/r5rs/sigscheme/sigscheme.c	2005-09-30 22:56:23 UTC (rev 1708)
@@ -93,6 +93,7 @@
       Externed Variable Initialization
     =======================================================================*/
     scm_continuation_thrown_obj = SCM_NULL;
+    SigScm_GC_Protect(&scm_continuation_thrown_obj);
     /*=======================================================================
       Storage Initialization
     =======================================================================*/
@@ -305,6 +306,7 @@
     Scm_RegisterProcedureFixed1("provided?"                , ScmOp_providedp);
     Scm_RegisterProcedureFixed1("file-exists?"             , ScmOp_file_existsp);
     Scm_RegisterProcedureFixed1("delete-file"              , ScmOp_delete_file);
+    Scm_DefineAlias("call/cc", "call-with-current-continuation");
 #endif
 
     /*=======================================================================



More information about the uim-commit mailing list