diff options
author | Aaron Patterson <[email protected]> | 2024-10-15 16:57:09 -0700 |
---|---|---|
committer | Aaron Patterson <[email protected]> | 2024-10-15 19:06:07 -0700 |
commit | a0ecdbfbfe57a57ab33bdb5e1de4d5dfa8407dbb (patch) | |
tree | ba1a88d1f94465878327406423527d5b584798ea /vm_args.c | |
parent | ed993b5bcc4fcae661dd022d3211dcc770425218 (diff) |
Remove "simple" flag from forwarded ICs
I don't think we should ever consider forwarded IC's to be "simple".
Previously, the "simple" flag would be copied to the derived IC and this
happened to cause struct set / get iseqs to write an invalid CC
fastpath:
https://github.com/tenderlove/ruby/blob/f45eb3dcb9c7d849064cb802953f37e1cf9f3996/vm_insnhelper.c#L4726-L4729
[Bug #20799]
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/11903
Diffstat (limited to 'vm_args.c')
-rw-r--r-- | vm_args.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1177,7 +1177,7 @@ vm_caller_setup_fwd_args(const rb_execution_context_t *ec, rb_control_frame_t *r *adjusted_ci = VM_CI_ON_STACK( site_mid, - (caller_flag | (site_flag & (VM_CALL_FCALL | VM_CALL_FORWARDING))), + ((caller_flag & ~VM_CALL_ARGS_SIMPLE) | (site_flag & (VM_CALL_FCALL | VM_CALL_FORWARDING))), site_argc + caller_argc, kw ); |