summaryrefslogtreecommitdiff
path: root/class.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-09-04 06:37:39 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-09-04 06:37:39 +0000
commit64901cd69beb7b965b7d9e685b5fcdb835362c50 (patch)
treee979c50333db286795cf1e9db8d53fe6aee86070 /class.c
parent056817564e8fcf98a35a1f52a4d4d1d0ca6a9fe4 (diff)
* class.c (rb_make_metaclass): obj.meta.super.meta should be equal
to obj.meta.meta.super (ruby-bugs-ja:PR#324). * parse.y (yylex): the warning message "invalid character syntax" was never issued. * marshal.c (r_bytes): do not use alloca (ruby-bugs:PR#382). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'class.c')
-rw-r--r--class.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/class.c b/class.c
index 1930a2d..65187f5 100644
--- a/class.c
+++ b/class.c
@@ -149,6 +149,9 @@ rb_make_metaclass(obj, super)
rb_singleton_class_attached(klass, obj);
if (BUILTIN_TYPE(obj) == T_CLASS) {
RBASIC(klass)->klass = klass;
+ if (FL_TEST(obj, FL_SINGLETON)) {
+ RCLASS(klass)->super = RBASIC(RCLASS(obj)->super)->klass;
+ }
}
return klass;