diff --git a/src/string.c b/src/string.c index b29a298c1..1bd3f6f8f 100644 --- a/src/string.c +++ b/src/string.c @@ -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); diff --git a/test/t/string.rb b/test/t/string.rb index caba51b7c..7dbd5bca8 100644 --- a/test/t/string.rb +++ b/test/t/string.rb @@ -948,4 +948,7 @@ assert('String#bytesplice') do # idx, len, replace, idx, len (len1