vm_method.c: for hidden object

* vm_method.c (rb_method_basic_definition_p): methods of hidden
  objects cannot be overridden, return TRUE.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-02-24 02:38:43 +00:00
Родитель 53ec85b5b4
Коммит 0cd34e9639
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -1859,7 +1859,9 @@ rb_mod_modfunc(int argc, VALUE *argv, VALUE module)
int
rb_method_basic_definition_p(VALUE klass, ID id)
{
const rb_method_entry_t *me = rb_method_entry(klass, id);
const rb_method_entry_t *me;
if (!klass) return TRUE; /* hidden object cannot be overridden */
me = rb_method_entry(klass, id);
return (me && METHOD_ENTRY_BASIC(me)) ? TRUE : FALSE;
}