From 43f68272c7fc50ba33c58f7e22923bac6fc204ac Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 4 Feb 2002 08:09:14 +0000 Subject: * object.c (rb_class_real): should not follow ICLASS link * variable.c (classname): should follow ICLASS link explicitly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- variable.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'variable.c') diff --git a/variable.c b/variable.c index b44ea009ed..1c7a2601e0 100644 --- a/variable.c +++ b/variable.c @@ -145,6 +145,10 @@ classname(klass) VALUE path = Qnil; ID classpath = rb_intern("__classpath__"); + if (TYPE(klass) == T_ICLASS) { + klass = RBASIC(klass)->klass; + } + klass = rb_class_real(klass); if (!klass) klass = rb_cObject; if (ROBJECT(klass)->iv_tbl && !st_lookup(ROBJECT(klass)->iv_tbl, classpath, &path)) { @@ -172,7 +176,7 @@ VALUE rb_mod_name(mod) VALUE mod; { - VALUE path = classname(rb_class_real(mod)); + VALUE path = classname(mod); if (path) return rb_str_dup(path); return rb_str_new(0,0); @@ -182,7 +186,7 @@ VALUE rb_class_path(klass) VALUE klass; { - VALUE path = classname(rb_class_real(klass)); + VALUE path = classname(klass); if (path) return path; else { -- cgit v1.2.3