@@ -308,15 +308,23 @@ def peep(len)
308
308
peek len
309
309
end
310
310
311
- def scan_internal ( pattern , advance_pos , getstr , headonly )
311
+ def scan_check_args ( pattern , headonly )
312
312
unless pattern . kind_of? Regexp
313
313
raise TypeError , "bad pattern argument: #{ pattern . inspect } "
314
314
end
315
315
raise ArgumentError , 'uninitialized StringScanner object' unless @string
316
+ end
317
+
318
+ def scan_internal ( pattern , advance_pos , getstr , headonly )
319
+ scan_check_args ( pattern , headonly )
316
320
317
321
md = Truffle ::RegexpOperations . match_in_region pattern , @string , pos , @string . bytesize , headonly , pos
318
322
Primitive . matchdata_fixup_positions ( md , pos ) if md
319
323
@match = md
324
+ scan_internal2 ( advance_pos , getstr )
325
+ end
326
+
327
+ def scan_internal2 ( advance_pos , getstr )
320
328
return nil unless @match
321
329
322
330
fin = Primitive . match_data_byte_end ( @match , 0 )
@@ -329,6 +337,6 @@ def scan_internal(pattern, advance_pos, getstr, headonly)
329
337
330
338
@string . byteslice ( @prev_pos , width )
331
339
end
332
- private :scan_internal
340
+ private :scan_internal , :scan_internal2 , :scan_check_args
333
341
334
342
end
0 commit comments