]> gitweb.factorcode.org Git - factor.git/commitdiff
continuations: slight speedup.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 14 Sep 2012 21:59:38 +0000 (14:59 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 14 Sep 2012 21:59:38 +0000 (14:59 -0700)
core/continuations/continuations.factor

index 0d0c41c72dc6497f2982ff53302afe022ef627da..65fe51182ef33729d7697c4cfd377739fc5aaa3d 100644 (file)
@@ -45,8 +45,11 @@ C: <continuation> continuation
 
 <PRIVATE
 
+ERROR: not-a-continuation obj ;
+
 : >continuation< ( continuation -- data call retain name catch )
-    { [ data>> ] [ call>> ] [ retain>> ] [ name>> ] [ catch>> ] } cleave ;
+    dup continuation? [ not-a-continuation ] unless
+    { [ data>> ] [ call>> ] [ retain>> ] [ name>> ] [ catch>> ] } cleave ; inline
 
 PRIVATE>
 
@@ -160,7 +163,7 @@ ERROR: attempt-all-error ;
 
 TUPLE: condition error restarts continuation ;
 
-C: <condition> condition ( error restarts cc -- condition )
+C: <condition> condition
 
 : throw-restarts ( error restarts -- restart )
     [ <condition> throw ] callcc1 2nip ;