From 8a93e5d01bf8bc185426a62ebb675460592a609b Mon Sep 17 00:00:00 2001 From: Matt Valentine-House Date: Fri, 13 Jan 2023 14:30:47 +0000 Subject: [PATCH] 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 --- string.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/string.c b/string.c index 70dc9c485f..de96796269 100644 --- a/string.c +++ b/string.c @@ -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];