mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Switch YJIT to using rb_str_buf_append rather than rb_str_append when encodings don't match, as discussed with byroot
This commit is contained in:
parent
906f7cb3e7
commit
a2e0815e27
Notes:
git
2022-07-07 00:26:24 +09:00
3 changed files with 4 additions and 4 deletions
|
@ -64,7 +64,7 @@ fn main() {
|
|||
|
||||
// From include/ruby/internal/intern/string.h
|
||||
.allowlist_function("rb_utf8_str_new")
|
||||
.allowlist_function("rb_str_append")
|
||||
.allowlist_function("rb_str_buf_append")
|
||||
.allowlist_function("rb_str_dup")
|
||||
|
||||
// This struct is public to Ruby C extensions
|
||||
|
|
|
@ -3792,7 +3792,7 @@ fn jit_rb_str_concat(
|
|||
|
||||
// If encodings are different, use a slower encoding-aware concatenate
|
||||
cb.write_label(enc_mismatch);
|
||||
call_ptr(cb, REG0, rb_str_append as *const u8);
|
||||
call_ptr(cb, REG0, rb_str_buf_append as *const u8);
|
||||
// Drop through to return
|
||||
|
||||
cb.write_label(ret_label);
|
||||
|
|
|
@ -224,10 +224,10 @@ extern "C" {
|
|||
) -> VALUE;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn rb_str_dup(str_: VALUE) -> VALUE;
|
||||
pub fn rb_str_buf_append(dst: VALUE, src: VALUE) -> VALUE;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn rb_str_append(dst: VALUE, src: VALUE) -> VALUE;
|
||||
pub fn rb_str_dup(str_: VALUE) -> VALUE;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn rb_str_intern(str_: VALUE) -> VALUE;
|
||||
|
|
Loading…
Add table
Reference in a new issue