diff options
Diffstat (limited to 'vm_method.c')
-rw-r--r-- | vm_method.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/vm_method.c b/vm_method.c index 50f0b12e5a..a76277c81d 100644 --- a/vm_method.c +++ b/vm_method.c @@ -454,7 +454,7 @@ rb_method_entry(VALUE klass, ID id) static void remove_method(VALUE klass, ID mid) { - st_data_t data; + st_data_t key, data; rb_method_entry_t *me = 0; if (klass == rb_cObject) { @@ -475,7 +475,8 @@ remove_method(VALUE klass, ID mid) rb_name_error(mid, "method `%s' not defined in %s", rb_id2name(mid), rb_class2name(klass)); } - st_delete(RCLASS_M_TBL(klass), &mid, &data); + key = (st_data_t)mid; + st_delete(RCLASS_M_TBL(klass), &key, &data); rb_vm_check_redefinition_opt_method(me); rb_clear_cache_for_undef(klass, mid); |