]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/sequences/extras/extras.factor
sequences.extras: add more parameter range checks to exchange-subseq
[factor.git] / extra / sequences / extras / extras.factor
index dbadb2afe0464ee4c01dba6ae213895a0a9e2b41..e6f24f60427846fce81e69bae380ceb059e0888f 100644 (file)
@@ -1199,7 +1199,7 @@ INSTANCE: virtual-zip-index immutable-sequence
     '[ [ [ _ nth-unsafe @ ] [ _ set-nth-unsafe ] bi ] each-integer _ ] call ; inline
 
 : exchange-subseq ( len pos1 pos2 seq -- )
-    [ 3dup max + 1 - ] dip bounds-check nip '[
+    [ [ assert-non-negative ] tri@ 3dup max + 1 - ] dip bounds-check nip '[
         2dup _ exchange-unsafe
         [ 1 - ] [ 1 + ] [ 1 + ] tri*
     ] [ pick 0 > ] swap while 3drop ;