vm_insnhelper.c: update assertion [ci skip]

* vm_insnhelper.c (callable_class_p): update assertion as callable
  class may be T_MODULE or I_ICLASS which refines a module since
  r56213.  [Feature #12534]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-10-09 09:42:17 +00:00
Родитель a23878c3f5
Коммит 41f7aa646f
1 изменённых файлов: 7 добавлений и 0 удалений

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

@ -40,6 +40,13 @@ static int
callable_class_p(VALUE klass)
{
#if VM_CHECK_MODE >= 2
if (!klass) return FALSE;
switch (RB_BUILTIN_TYPE(klass)) {
case T_ICLASS:
if (!RB_TYPE_P(RCLASS_SUPER(klass), T_MODULE)) break;
case T_MODULE:
return TRUE;
}
while (klass) {
if (klass == rb_cBasicObject) {
return TRUE;