From 7d805e67f3275aef066d77aa9c32bef715c362ed Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Tue, 7 May 2019 12:00:57 +0200 Subject: Avoid triggering autoload in Module#const_defined?(String) [Bug #15780] --- object.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'object.c') diff --git a/object.c b/object.c index 35f07d995d..00a70898f3 100644 --- a/object.c +++ b/object.c @@ -2694,16 +2694,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 -- cgit v1.2.3