]> gitweb.factorcode.org Git - factor.git/commitdiff
strings: the fast path for set-string-nth was being used inappropriately for negative...
authorJoe Groff <arcata@gmail.com>
Wed, 20 Jul 2011 17:21:11 +0000 (10:21 -0700)
committerJoe Groff <arcata@gmail.com>
Wed, 20 Jul 2011 17:21:11 +0000 (10:21 -0700)
core/strings/strings-tests.factor
core/strings/strings.factor

index 247bd8d00766910a353c5ab1b3d108147e1a1519..bebdb328206d2a5ab377b10d80d8b7738ba90b5c 100644 (file)
@@ -121,3 +121,5 @@ unit-test
         [ <string> clone resize-string first ] keep =
     ] all-integers?
 ] unit-test
+
+[ HEX: 7fffff ] [ { -1 } >string first ] unit-test
index f356d2a87772edffdda015503286b38eb6d1ced3..e57edf282aea2a6a585f5074e1ed2e03c8683961 100644 (file)
@@ -19,7 +19,8 @@ IN: strings
 : (aux) ( n string -- byte-array m )
     aux>> { byte-array } declare swap 1 fixnum-shift-fast ; inline
 
-: small-char? ( ch -- ? ) HEX: 7f fixnum<= ; inline
+: small-char? ( ch -- ? )
+    dup 0 fixnum>= [ HEX: 7f fixnum<= ] [ drop f ] if ; inline
 
 : string-nth ( n string -- ch )
     2dup string-nth-fast dup small-char?