aboutsummaryrefslogtreecommitdiffstats
path: root/vm_callinfo.h
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2021-06-28 15:00:35 -0700
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:36 -0400
commit0d63600e4f9d45e9814191e5ca7aecf9ef28a9df (patch)
tree0e530e121a99288b62e8493e2d4c40846a793216 /vm_callinfo.h
parentb385f311882be75e81ec9ce7ab74d2368fec1560 (diff)
downloadruby-0d63600e4f9d45e9814191e5ca7aecf9ef28a9df.tar.gz
Partial revert of ceebc7fc98d
I'm looking through the places where YJIT needs notifications. It looks like these changes to gc.c and vm_callinfo.h have become unnecessary since 84ab77ba592. This commit just makes the diff against upstream smaller, but otherwise shouldn't change any behavior.
Diffstat (limited to 'vm_callinfo.h')
-rw-r--r--vm_callinfo.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/vm_callinfo.h b/vm_callinfo.h
index 11c23e02cc..d5f4388fa8 100644
--- a/vm_callinfo.h
+++ b/vm_callinfo.h
@@ -409,7 +409,16 @@ vm_cc_method_missing_reason_set(const struct rb_callcache *cc, enum method_missi
*(enum method_missing_reason *)&cc->aux_.method_missing_reason = reason;
}
-void rb_vm_cc_invalidate(const struct rb_callcache *cc);
+static inline void
+vm_cc_invalidate(const struct rb_callcache *cc)
+{
+ VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
+ VM_ASSERT(cc != vm_cc_empty());
+ VM_ASSERT(cc->klass != 0); // should be enable
+
+ *(VALUE *)&cc->klass = 0;
+ RB_DEBUG_COUNTER_INC(cc_ent_invalidate);
+}
/* calldata */