mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Need type check for replace by String#bytesplice
This commit is contained in:
@@ -3006,6 +3006,7 @@ mrb_str_bytesplice(mrb_state *mrb, mrb_value str)
|
||||
mrb_get_args(mrb, "iiS", &idx1, &len1, &replace);
|
||||
return str_bytesplice(mrb, str, idx1, len1, replace, 0, RSTRING_LEN(replace));
|
||||
}
|
||||
mrb_ensure_string_type(mrb, replace);
|
||||
if (mrb_range_beg_len(mrb, range1, &idx1, &len1, RSTRING_LEN(str), FALSE) != MRB_RANGE_OK) break;
|
||||
if (mrb_range_beg_len(mrb, range2, &idx2, &len2, RSTRING_LEN(replace), FALSE) != MRB_RANGE_OK) break;
|
||||
return str_bytesplice(mrb, str, idx1, len1, replace, idx2, len2);
|
||||
|
||||
@@ -948,4 +948,7 @@ assert('String#bytesplice') do
|
||||
# idx, len, replace, idx, len (len1<len2)
|
||||
a = "0123456789"
|
||||
assert_equal "0cd23456789", a.bytesplice(1, 1, b, 2, 2)
|
||||
|
||||
# check the object type to replace
|
||||
assert_raise(TypeError) { "0123456789".bytesplice(1, 1, Object.new) }
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user