]> gitweb.factorcode.org Git - factor.git/commitdiff
boxes: don't check occupied twice.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 22 Mar 2013 00:57:03 +0000 (17:57 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 22 Mar 2013 00:57:03 +0000 (17:57 -0700)
basis/boxes/boxes.factor

index 15c22bea88a4a64cc874cc05f9cc045ba23fe986..22b28b8434f82bcd735c27aea2311ceb0cdba5eb 100644 (file)
@@ -18,11 +18,18 @@ ERROR: box-empty box ;
 : check-box ( box -- box )\r
     dup occupied>> [ box-empty ] unless ; inline\r
 \r
+<PRIVATE\r
+\r
+: box-unsafe> ( box -- value )\r
+    [ f ] change-value f >>occupied drop ; inline\r
+\r
+PRIVATE>\r
+\r
 : box> ( box -- value )\r
-    check-box [ f ] change-value f >>occupied drop ; inline\r
+    check-box box-unsafe> ; inline\r
 \r
 : ?box ( box -- value/f ? )\r
-    dup occupied>> [ box> t ] [ drop f f ] if ; inline\r
+    dup occupied>> [ box-unsafe> t ] [ drop f f ] if ; inline\r
 \r
 : if-box? ( box quot -- )\r
     [ ?box ] dip [ drop ] if ; inline\r