From 59a1d7493762f7895cc8432bce6f7da5942e4aaf Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 9 Jan 2024 13:00:41 +0900 Subject: [PATCH] string.c: inline `str_range_to_bytes` --- src/string.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/string.c b/src/string.c index 562a62bd7..c3fb46f3b 100644 --- a/src/string.c +++ b/src/string.c @@ -555,17 +555,12 @@ mrb_str_byte_subseq(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len) return mrb_obj_value(s); } -static void -str_range_to_bytes(mrb_value str, mrb_int *pos, mrb_int *len) -{ - *pos = chars2bytes(str, 0, *pos); - *len = chars2bytes(str, *pos, *len); -} #ifdef MRB_UTF8_STRING static inline mrb_value str_subseq(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len) { - str_range_to_bytes(str, &beg, &len); + beg = chars2bytes(str, 0, beg); + len = chars2bytes(str, beg, len); return mrb_str_byte_subseq(mrb, str, beg, len); } #else @@ -1297,7 +1292,8 @@ mrb_str_aset(mrb_state *mrb, mrb_value str, mrb_value indx, mrb_value alen, mrb_ if (beg < 0 || beg > charlen) { str_out_of_index(mrb, indx); } /* fall through */ case STR_CHAR_RANGE_CORRECTED: - str_range_to_bytes(str, &beg, &len); + beg = chars2bytes(str, 0, beg); + len = chars2bytes(str, beg, len); /* fall through */ case STR_BYTE_RANGE_CORRECTED: if (mrb_int_add_overflow(beg, len, &len)) {