From 41f7aa646fcb88dc50e401d08a2750ebf2085dfb Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 9 Oct 2016 09:42:17 +0000 Subject: 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 --- vm_insnhelper.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'vm_insnhelper.c') diff --git a/vm_insnhelper.c b/vm_insnhelper.c index e17f9ba382..d9c2087243 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -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; -- cgit v1.2.3