File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -63,6 +63,12 @@ extension Collection {
6363 @_effects ( readonly)
6464 func boyerMooreSearch< C> ( for needle: C ) -> Range < Index > ?
6565 where C: BidirectionalCollection , C. Element == Element , Element: Hashable {
66+ if needle. count > count {
67+ return nil
68+ }
69+ if needle. count == count {
70+ return elementsEqual ( needle) ? startIndex ..< endIndex : nil
71+ }
6672 var skipTable : [ Element : Int ] = [ : ]
6773 skipTable. reserveCapacity ( needle. count)
6874 var offset = 0
@@ -83,6 +89,12 @@ extension Collection {
8389 @_effects ( readonly)
8490 func boyerMooreSearch< C> ( for needle: C ) -> Range < Index > ?
8591 where C: BidirectionalCollection , C. Element == UInt8 , Element == UInt8 {
92+ if needle. count > count {
93+ return nil
94+ }
95+ if needle. count == count {
96+ return elementsEqual ( needle) ? startIndex ..< endIndex : nil
97+ }
8698 if needle. count < 256 {
8799 var skipTableStorage : TableStorage =
88100 ( 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
You can’t perform that action at this time.
0 commit comments