summaryrefslogtreecommitdiff
path: root/yjit/src/codegen.rs
diff options
context:
space:
mode:
authorJohn Hawthorn <[email protected]>2024-11-28 00:59:04 -0800
committerAlan Wu <[email protected]>2024-11-28 15:04:12 -0500
commita5119a3f27c368f649198f7a3b7dce726d9bd2a0 (patch)
tree73c8d7cc1ac65d8e8f38e7211d6240f0de3ead6f /yjit/src/codegen.rs
parent50a34637a4bdd64a709937f09c839195a2b1d967 (diff)
YJIT: Add missing prepare before calling str_dup
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/12202
Diffstat (limited to 'yjit/src/codegen.rs')
-rw-r--r--yjit/src/codegen.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs
index d0888c39c5..07c8d726d9 100644
--- a/yjit/src/codegen.rs
+++ b/yjit/src/codegen.rs
@@ -6123,7 +6123,7 @@ fn jit_rb_str_to_s(
}
fn jit_rb_str_dup(
- _jit: &mut JITState,
+ jit: &mut JITState,
asm: &mut Assembler,
_ci: *const rb_callinfo,
_cme: *const rb_callable_method_entry_t,
@@ -6137,6 +6137,8 @@ fn jit_rb_str_dup(
}
asm_comment!(asm, "String#dup");
+ jit_prepare_call_with_gc(jit, asm);
+
// Check !FL_ANY_RAW(str, FL_EXIVAR), which is part of BARE_STRING_P.
let recv_opnd = asm.stack_pop(1);
let recv_opnd = asm.load(recv_opnd);