summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-06-26 06:17:20 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-06-26 06:17:20 +0000
commitd4ae6052404886fd0ee60ecca23af1e8f914b571 (patch)
tree0ef475543fb16eeec402e216443a9ad4db9af905
parent11fa3bf8c7396d7789d5b6435e9d37b888225055 (diff)
* variable.c (rb_mod_class_variables): class variables are no longer
inherited. [ruby-dev:23808] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--variable.c13
2 files changed, 9 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 39d7fc4f44..2924e8c549 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Jun 26 15:17:11 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * variable.c (rb_mod_class_variables): class variables are no longer
+ inherited. [ruby-dev:23808]
+
Sat Jun 26 11:07:20 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.in (aix): -b must come at the start of the command line,
diff --git a/variable.c b/variable.c
index cb972ba81d..6d4ccd2c53 100644
--- a/variable.c
+++ b/variable.c
@@ -1800,8 +1800,7 @@ cv_i(key, value, ary)
* call-seq:
* mod.class_variables => array
*
- * Returns an array of the names of class variables in <i>mod</i> and
- * the ancestors of <i>mod</i>.
+ * Returns an array of the names of class variables in <i>mod</i>.
*
* class One
* @@var1 = 1
@@ -1810,7 +1809,7 @@ cv_i(key, value, ary)
* @@var2 = 2
* end
* One.class_variables #=> ["@@var1"]
- * Two.class_variables #=> ["@@var2", "@@var1"]
+ * Two.class_variables #=> ["@@var2"]
*/
VALUE
@@ -1819,12 +1818,8 @@ rb_mod_class_variables(obj)
{
VALUE ary = rb_ary_new();
- for (;;) {
- if (RCLASS(obj)->iv_tbl) {
- st_foreach(RCLASS(obj)->iv_tbl, cv_i, ary);
- }
- obj = RCLASS(obj)->super;
- if (!obj) break;
+ if (RCLASS(obj)->iv_tbl) {
+ st_foreach(RCLASS(obj)->iv_tbl, cv_i, ary);
}
return ary;
}