Use str_enc_copy_direct to improve performance

str_enc_copy_direct copies the string encoding over without checking the
frozen status of the string. Because we know that we're safe here (we
only use this function when interpolating strings on the stack via a
concatstrings instruction) we can safely skip this check
This commit is contained in:
Matt Valentine-House 2023-01-13 14:30:47 +00:00 committed by Peter Zhu
parent 2605615fe6
commit 8a93e5d01b
Notes: git 2023-01-13 15:32:05 +00:00

View File

@ -3352,7 +3352,7 @@ rb_str_concat_literals(size_t num, const VALUE *strary)
for (i = 0; i < num; ++i) { len += RSTRING_LEN(strary[i]); }
str = rb_str_buf_new(len);
str_enc_copy(str, strary[0]);
str_enc_copy_direct(str, strary[0]);
for (i = s; i < num; ++i) {
const VALUE v = strary[i];