summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--variable.c20
2 files changed, 15 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 33c44bb878..810e87af52 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Feb 20 10:03:59 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * variable.c (rb_const_get_0): Object should have been the lowest
+ in const lookup precedence. [ruby-dev:28343]
+
Mon Feb 20 09:17:11 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
* lib/delegate.rb (Delegator): should not delegate "funcall".
diff --git a/variable.c b/variable.c
index a559a5e23d..7bd55eb0db 100644
--- a/variable.c
+++ b/variable.c
@@ -1302,16 +1302,16 @@ rb_const_get_0(VALUE klass, ID id, int exclude, int recurse, NODE *fallback)
}
}
if (recurse) {
- if (!n_retry) {
- n_retry = 1;
- tmp = rb_cObject;
- goto retry;
- }
if (fallback) {
tmp = fallback->nd_clss;
fallback = fallback->nd_next;
goto retry;
}
+ if (!n_retry) {
+ n_retry = 1;
+ tmp = rb_cObject;
+ goto retry;
+ }
}
return const_missing(klass, id);
}
@@ -1469,16 +1469,16 @@ rb_const_defined_0(VALUE klass, ID id, int exclude, int recurse, NODE* fallback)
tmp = RCLASS(tmp)->super;
}
if (recurse) {
- if (!n_retry) {
- n_retry = 1;
- tmp = rb_cObject;
- goto retry;
- }
if (fallback) {
tmp = fallback->nd_clss;
fallback = fallback->nd_next;
goto retry;
}
+ if (!n_retry) {
+ n_retry = 1;
+ tmp = rb_cObject;
+ goto retry;
+ }
}
return Qfalse;
}