ruby-changes:59161
From: Yusuke <ko1@a...>
Date: Tue, 10 Dec 2019 19:41:22 +0900 (JST)
Subject: [ruby-changes:59161] 60c53ff6ee (master): vm_core.h (iseq_unique_id): prefer uintptr_t instead of unsigned long
https://git.ruby-lang.org/ruby.git/commit/?id=60c53ff6ee From 60c53ff6ee1eed054fc3d78ad6c06cbfc56900d6 Mon Sep 17 00:00:00 2001 From: Yusuke Endoh <mame@r...> Date: Tue, 10 Dec 2019 17:10:23 +0900 Subject: 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). diff --git a/iseq.c b/iseq.c index 4298130..f5f8437 100644 --- a/iseq.c +++ b/iseq.c @@ -427,7 +427,7 @@ rb_iseq_memsize(const rb_iseq_t *iseq) https://github.com/ruby/ruby/blob/trunk/iseq.c#L427 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 c6c1118..6c105f0 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 https://github.com/ruby/ruby/blob/trunk/vm_args.c#L597 { 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 4b1b9e4..365f6fb 100644 --- a/vm_core.h +++ b/vm_core.h @@ -448,7 +448,7 @@ struct rb_iseq_constant_body { https://github.com/ruby/ruby/blob/trunk/vm_core.h#L448 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 */ -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/