summaryrefslogtreecommitdiff
path: root/vm_method.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm_method.c')
-rw-r--r--vm_method.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/vm_method.c b/vm_method.c
index 50f0b12e5a..becce27c1c 100644
--- a/vm_method.c
+++ b/vm_method.c
@@ -566,8 +566,9 @@ rb_method_boundp(VALUE klass, ID id, int ex)
rb_method_entry_t *me = rb_method_entry(klass, id);
if (me != 0) {
- if ((ex & ~NOEX_RESPONDS) && (me->flag & NOEX_PRIVATE)) {
- return FALSE;
+ if ((ex & NOEX_RESPONDS) && (me->flag & NOEX_PROTECTED) ||
+ (ex & ~NOEX_RESPONDS) && (me->flag & NOEX_PRIVATE)) {
+ return 0;
}
if (!me->def) return 0;
if (me->def->type == VM_METHOD_TYPE_NOTIMPLEMENTED) {