summaryrefslogtreecommitdiff
path: root/rjit_c.c
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2023-03-18 23:49:11 -0700
committerTakashi Kokubun <takashikkbn@gmail.com>2023-03-19 13:25:41 -0700
commit2121282753b9faee1ce6f93d6c75b105ad040af0 (patch)
treebd2b4b09c3276380ae0096ed71d30ba41ee6bbcc /rjit_c.c
parentbcd0aa896fe84610cef8dc873239738001283538 (diff)
downloadruby-2121282753b9faee1ce6f93d6c75b105ad040af0.tar.gz
RJIT: Optimize String#<<
Diffstat (limited to 'rjit_c.c')
-rw-r--r--rjit_c.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/rjit_c.c b/rjit_c.c
index dd6067f334..bf0bf6f410 100644
--- a/rjit_c.c
+++ b/rjit_c.c
@@ -170,6 +170,12 @@ rjit_str_neq_internal(VALUE str1, VALUE str2)
return rb_str_eql_internal(str1, str2) == Qtrue ? Qfalse : Qtrue;
}
+static VALUE
+rjit_str_simple_append(VALUE str1, VALUE str2)
+{
+ return rb_str_cat(str1, RSTRING_PTR(str2), RSTRING_LEN(str2));
+}
+
// The code we generate in gen_send_cfunc() doesn't fire the c_return TracePoint event
// like the interpreter. When tracing for c_return is enabled, we patch the code after
// the C method return to call into this to fire the event.