From 6b9b85318a0cfd5fffb80426e3ff2bce133c26fd Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 31 Mar 2014 14:38:38 +0000 Subject: [PATCH] variable.c, vm_method.c: pin down * variable.c (rb_alias_variable): ensure pinned down. * vm_method.c (rb_method_entry_make): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- variable.c | 1 + vm_method.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/variable.c b/variable.c index 292b084011..265633f40c 100644 --- a/variable.c +++ b/variable.c @@ -873,6 +873,7 @@ rb_alias_variable(ID name1, ID name2) entry2 = rb_global_entry(name2); if (!st_lookup(rb_global_tbl, (st_data_t)name1, &data1)) { + name1 = SYM2ID(ID2SYM(name1)); entry1 = ALLOC(struct global_entry); entry1->id = name1; st_add_direct(rb_global_tbl, name1, (st_data_t)entry1); diff --git a/vm_method.c b/vm_method.c index 6b2eaf8f1b..d5513327c0 100644 --- a/vm_method.c +++ b/vm_method.c @@ -333,6 +333,8 @@ rb_method_entry_make(VALUE klass, ID mid, rb_method_type_t type, rb_unlink_method_entry(old_me); } + mid = SYM2ID(ID2SYM(mid)); + me = ALLOC(rb_method_entry_t); rb_clear_method_cache_by_class(klass);