summaryrefslogtreecommitdiff
path: root/vm_method.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm_method.c')
-rw-r--r--vm_method.c5
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);