sequences: adding a subseq-unsafe that doesn't check slice bounds.

db4
John Benediktsson 2015-07-16 23:42:56 -07:00
parent 16837c56ee
commit 9fad4187f3
2 changed files with 9 additions and 5 deletions

View File

@ -4,8 +4,8 @@ USING: accessors arrays assocs byte-arrays byte-vectors classes
combinators definitions effects fry generic generic.single
generic.standard hashtables io.binary io.encodings
io.streams.string kernel kernel.private math math.parser
namespaces parser sbufs sequences splitting splitting.private
strings vectors words ;
namespaces parser sbufs sequences sequences.private splitting
splitting.private strings vectors words ;
IN: hints
GENERIC: specializer-predicate ( spec -- quot )
@ -95,9 +95,10 @@ set-specializer
set-specializer
] each
\ subseq
{ { fixnum fixnum string } { fixnum fixnum array } }
set-specializer
{ subseq subseq-unsafe } [
{ { fixnum fixnum string } { fixnum fixnum array } }
set-specializer
] each
\ reverse!
{ { string } { array } }

View File

@ -311,6 +311,9 @@ C: <copy> copy-state
#! The check-length call forces partial dispatch
[ [ length check-length 0 ] keep ] 2dip <copy> (copy) drop ; inline
: subseq-unsafe ( from to seq -- subseq )
[ subseq>copy (copy) ] keep like ;
PRIVATE>
: subseq ( from to seq -- subseq )