From 1351374bd14d4d134726889ba195609b4f745ea6 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 3 Jun 2020 08:40:11 +0900 Subject: Split visibility cases --- vm_method.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'vm_method.c') diff --git a/vm_method.c b/vm_method.c index 2b2e28e10c..d8d1552432 100644 --- a/vm_method.c +++ b/vm_method.c @@ -1304,10 +1304,15 @@ rb_method_boundp(VALUE klass, ID id, int ex) } if (me != NULL) { - if ((ex & ~BOUND_RESPONDS) && - ((METHOD_ENTRY_VISI(me) == METHOD_VISI_PRIVATE) || - ((ex & BOUND_RESPONDS) && (METHOD_ENTRY_VISI(me) == METHOD_VISI_PROTECTED)))) { - return 0; + if (ex & ~BOUND_RESPONDS) { + switch (METHOD_ENTRY_VISI(me)) { + case METHOD_VISI_PRIVATE: + return 0; + case METHOD_VISI_PROTECTED: + if (ex & BOUND_RESPONDS) return 0; + default: + break; + } } if (me->def->type == VM_METHOD_TYPE_NOTIMPLEMENTED) { -- cgit v1.2.3