mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
string.rb (each_line): use byteindex for performance; fix #4522
Character-wise String#index method calculate UTF-8 character width numerous times if the string is long.
This commit is contained in:
+3
-3
@@ -30,10 +30,10 @@ class String
|
||||
self_len = length
|
||||
sep_len = separator.length
|
||||
|
||||
while (pointer = string.index(separator, start))
|
||||
while (pointer = string.byteindex(separator, start))
|
||||
pointer += sep_len
|
||||
pointer += 1 while paragraph_mode && string[pointer] == "\n"
|
||||
block.call(string[start, pointer - start])
|
||||
pointer += 1 while paragraph_mode && string.getbyte(pointer) == 10 # 10 == \n
|
||||
block.call(string.byteslice(start, pointer - start))
|
||||
start = pointer
|
||||
end
|
||||
return self if start == self_len
|
||||
|
||||
Reference in New Issue
Block a user