summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-12-09 12:25:34 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-12-09 12:25:34 +0000
commit00f4c13e22967de1d7e42085b2fc32bf6718f580 (patch)
treea35a45552ac3ea44b05036cca669ca18ed31e281 /object.c
parent15eba4ed0ebb4e019a037b0af10b34fdbc85e03a (diff)
merge revision(s) 7d805e67f3275aef066d77aa9c32bef715c362ed: [Backport #15780]
Avoid triggering autoload in Module#const_defined?(String) [Bug #15780] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'object.c')
-rw-r--r--object.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/object.c b/object.c
index 7928592250..454d35790f 100644
--- a/object.c
+++ b/object.c
@@ -2698,16 +2698,19 @@ rb_mod_const_defined(int argc, VALUE *argv, VALUE mod)
if (!RTEST(recur)) {
if (!rb_const_defined_at(mod, id))
return Qfalse;
+ if (p == pend) return Qtrue;
mod = rb_const_get_at(mod, id);
}
else if (beglen == 0) {
if (!rb_const_defined(mod, id))
return Qfalse;
+ if (p == pend) return Qtrue;
mod = rb_const_get(mod, id);
}
else {
if (!rb_const_defined_from(mod, id))
return Qfalse;
+ if (p == pend) return Qtrue;
mod = rb_const_get_from(mod, id);
}
#endif