summaryrefslogtreecommitdiff
path: root/vm_method.c
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2023-07-31 16:04:16 +0900
committerKoichi Sasada <ko1@atdot.net>2023-07-31 17:13:43 +0900
commit280419d0e0ba3e96e19551c70cba789fbedd80e1 (patch)
treeb77175e523f51fb120bcd30a7c2624407bf7381e /vm_method.c
parente40f8bbd20eb65d14992f1f7dce12b4c5edf614e (diff)
`calling->cd` instead of `calling->ci`
`struct rb_calling_info::cd` is introduced and `rb_calling_info::ci` is replaced with it to manipulate the inline cache of iseq while method invocation process. So that `ci` can be acessed with `calling->cd->ci`. It adds one indirection but it can be justified by the following points: 1) `vm_search_method_fastpath()` doesn't need `ci` and also `vm_call_iseq_setup_normal()` doesn't need `ci`. It means reducing `cd->ci` access in `vm_sendish()` can make it faster. 2) most of method types need to access `ci` once in theory so that 1 additional indirection doesn't matter.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/8129
Diffstat (limited to 'vm_method.c')
-rw-r--r--vm_method.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/vm_method.c b/vm_method.c
index d925e4f2fb..221f184267 100644
--- a/vm_method.c
+++ b/vm_method.c
@@ -322,6 +322,7 @@ invalidate_all_cc(void *vstart, void *vend, size_t stride, void *data)
RCLASS_CC_TBL(v) = NULL;
}
}
+
if (ptr) {
asan_poison_object(v);
}