From eabe10a85f7a2ba393e0e7d1fb619a59e6d3ef44 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 5 Aug 2021 20:09:25 +0900 Subject: [PATCH] Get rid of type-punning pointer cast --- vm_insnhelper.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 14928b2afe8..e186376b24d 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1724,9 +1724,11 @@ vm_search_cc(const VALUE klass, const struct rb_callinfo * const ci) const ID mid = vm_ci_mid(ci); struct rb_id_table *cc_tbl = RCLASS_CC_TBL(klass); struct rb_class_cc_entries *ccs = NULL; + VALUE ccs_data; if (cc_tbl) { - if (rb_id_table_lookup(cc_tbl, mid, (VALUE *)&ccs)) { + if (rb_id_table_lookup(cc_tbl, mid, &ccs_data)) { + ccs = (struct rb_class_cc_entries *)ccs_data; const int ccs_len = ccs->len; VM_ASSERT(vm_ccs_verify(ccs, mid, klass)); @@ -1790,8 +1792,9 @@ vm_search_cc(const VALUE klass, const struct rb_callinfo * const ci) if (ccs == NULL) { VM_ASSERT(cc_tbl != NULL); - if (LIKELY(rb_id_table_lookup(cc_tbl, mid, (VALUE*)&ccs))) { + if (LIKELY(rb_id_table_lookup(cc_tbl, mid, &ccs_data))) { // rb_callable_method_entry() prepares ccs. + ccs = (struct rb_class_cc_entries *)ccs_data; } else { // TODO: required? -- 2.32.0