summaryrefslogtreecommitdiff
path: root/insns.def
diff options
context:
space:
mode:
authorAaron Patterson <[email protected]>2024-06-03 15:48:13 -0700
committerAaron Patterson <[email protected]>2024-06-18 09:28:25 -0700
commita661c82972d1b4e3fc26662639b3a55c673ecb5e (patch)
tree3deed6748fe8f4e6e0409537085d28bd10e5d182 /insns.def
parentcc97a270080d2c6eb9dbdd2b9793ab549b6bb44d (diff)
Refactor so we don't have _cd
This should make the diff more clean
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def19
1 files changed, 8 insertions, 11 deletions
diff --git a/insns.def b/insns.def
index d0a46969a8..5c96e3f394 100644
--- a/insns.def
+++ b/insns.def
@@ -889,15 +889,13 @@ sendforward
struct rb_forwarding_call_data adjusted_cd;
struct rb_callinfo adjusted_ci;
- CALL_DATA _cd = cd;
+ VALUE bh = vm_caller_setup_fwd_args(GET_EC(), GET_CFP(), cd, blockiseq, 0, &adjusted_cd, &adjusted_ci);
- VALUE bh = vm_caller_setup_fwd_args(GET_EC(), GET_CFP(), &cd, blockiseq, 0, &adjusted_cd, &adjusted_ci);
-
- val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_method);
+ val = vm_sendish(ec, GET_CFP(), &adjusted_cd.cd, bh, mexp_search_method);
JIT_EXEC(ec, val);
- if (_cd->cc != cd->cc && vm_cc_markable(cd->cc)) {
- RB_OBJ_WRITE(GET_ISEQ(), &_cd->cc, cd->cc);
+ if (cd->cc != adjusted_cd.cd.cc && vm_cc_markable(adjusted_cd.cd.cc)) {
+ RB_OBJ_WRITE(GET_ISEQ(), &cd->cc, adjusted_cd.cd.cc);
}
if (UNDEF_P(val)) {
@@ -1042,17 +1040,16 @@ invokesuperforward
// attr rb_snum_t sp_inc = sp_inc_of_sendish(cd->ci);
// attr rb_snum_t comptime_sp_inc = sp_inc_of_sendish(ci);
{
- CALL_DATA _cd = cd;
struct rb_forwarding_call_data adjusted_cd;
struct rb_callinfo adjusted_ci;
- VALUE bh = vm_caller_setup_fwd_args(GET_EC(), GET_CFP(), &cd, blockiseq, 1, &adjusted_cd, &adjusted_ci);
+ VALUE bh = vm_caller_setup_fwd_args(GET_EC(), GET_CFP(), cd, blockiseq, 1, &adjusted_cd, &adjusted_ci);
- val = vm_sendish(ec, GET_CFP(), cd, bh, mexp_search_super);
+ val = vm_sendish(ec, GET_CFP(), &adjusted_cd.cd, bh, mexp_search_super);
JIT_EXEC(ec, val);
- if (_cd->cc != cd->cc && vm_cc_markable(cd->cc)) {
- RB_OBJ_WRITE(GET_ISEQ(), &_cd->cc, cd->cc);
+ if (cd->cc != adjusted_cd.cd.cc && vm_cc_markable(adjusted_cd.cd.cc)) {
+ RB_OBJ_WRITE(GET_ISEQ(), &cd->cc, adjusted_cd.cd.cc);
}
if (UNDEF_P(val)) {