From 60c53ff6ee1eed054fc3d78ad6c06cbfc56900d6 Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Tue, 10 Dec 2019 17:10:23 +0900 Subject: [PATCH] vm_core.h (iseq_unique_id): prefer uintptr_t instead of unsigned long It produced a warning about type cast in LLP64 (i.e., windows). --- iseq.c | 2 +- vm_args.c | 16 ++++++++-------- vm_core.h | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/iseq.c b/iseq.c index 4298130b65..f5f8437882 100644 --- a/iseq.c +++ b/iseq.c @@ -427,7 +427,7 @@ rb_iseq_memsize(const rb_iseq_t *iseq) return size; } -static unsigned long fresh_iseq_unique_id = 0; /* -- Remove In 3.0 -- */ +static uintptr_t fresh_iseq_unique_id = 0; /* -- Remove In 3.0 -- */ struct rb_iseq_constant_body * rb_iseq_constant_body_alloc(void) diff --git a/vm_args.c b/vm_args.c index c6c111865e..6c105f0ee0 100644 --- a/vm_args.c +++ b/vm_args.c @@ -597,38 +597,38 @@ static VALUE rb_warn_check(const rb_execution_context_t * const ec, const rb_ise { if (!iseq) return 0; - const void *const callee = (void *)(iseq->body->iseq_unique_id * 2); + const st_data_t callee = (st_data_t)(iseq->body->iseq_unique_id * 2); const rb_control_frame_t * const cfp = rb_vm_get_ruby_level_next_cfp(ec, ec->cfp); if (!cfp) return 0; - const void *const caller = cfp->pc; + const st_data_t caller = (st_data_t)cfp->pc; if (!caller_to_callees) { caller_to_callees = st_init_numtable(); } st_data_t val; - if (st_lookup(caller_to_callees, (st_data_t) caller, &val)) { + if (st_lookup(caller_to_callees, caller, &val)) { st_table *callees; if (val & 1) { val &= ~(st_data_t)1; - if (val == (st_data_t) callee) return 1; /* already warned */ + if (val == callee) return 1; /* already warned */ callees = st_init_numtable(); st_insert(callees, val, 1); } else { callees = (st_table *) val; - if (st_is_member(callees, (st_data_t) callee)) return 1; /* already warned */ + if (st_is_member(callees, callee)) return 1; /* already warned */ } - st_insert(callees, (st_data_t) callee, 1); - st_insert(caller_to_callees, (st_data_t) caller, (st_data_t) callees); + st_insert(callees, callee, 1); + st_insert(caller_to_callees, caller, (st_data_t) callees); } else { - st_insert(caller_to_callees, (st_data_t) caller, ((st_data_t) callee) | 1); + st_insert(caller_to_callees, caller, callee | 1); } return 0; /* not warned yet for the pair of caller and callee */ diff --git a/vm_core.h b/vm_core.h index 4b1b9e43d0..365f6fb931 100644 --- a/vm_core.h +++ b/vm_core.h @@ -448,7 +448,7 @@ struct rb_iseq_constant_body { struct rb_mjit_unit *jit_unit; #endif - unsigned long iseq_unique_id; /* -- Remove In 3.0 -- */ + uintptr_t iseq_unique_id; /* -- Remove In 3.0 -- */ }; /* T_IMEMO/iseq */