mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* hash.c (rb_hash_become): Hash#become should check added
self-assignment. * class.c (rb_make_metaclass): metaclass of a superclass may be NULL at boot time. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
56201383cd
commit
70dc199fdd
3 changed files with 15 additions and 1 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
Sat Sep 28 10:40:44 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* hash.c (rb_hash_become): Hash#become should check added
|
||||||
|
self-assignment.
|
||||||
|
|
||||||
|
* class.c (rb_make_metaclass): metaclass of a superclass may be
|
||||||
|
NULL at boot time.
|
||||||
|
|
||||||
Sat Sep 28 09:50:03 2002 KONISHI Hiromasa <konishih@fd6.so-net.ne.jp>
|
Sat Sep 28 09:50:03 2002 KONISHI Hiromasa <konishih@fd6.so-net.ne.jp>
|
||||||
|
|
||||||
* ext/extmk.rb: The condition judgment without necessity was deleted.
|
* ext/extmk.rb: The condition judgment without necessity was deleted.
|
||||||
|
|
7
class.c
7
class.c
|
@ -152,7 +152,12 @@ rb_make_metaclass(obj, super)
|
||||||
RCLASS(klass)->super = RBASIC(rb_class_real(RCLASS(obj)->super))->klass;
|
RCLASS(klass)->super = RBASIC(rb_class_real(RCLASS(obj)->super))->klass;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
RBASIC(klass)->klass = RBASIC(rb_class_real(super))->klass;
|
VALUE metasuper = RBASIC(rb_class_real(super))->klass;
|
||||||
|
|
||||||
|
/* metaclass of a superclass may be NULL at boot time */
|
||||||
|
if (metasuper) {
|
||||||
|
RBASIC(klass)->klass;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return klass;
|
return klass;
|
||||||
|
|
1
hash.c
1
hash.c
|
@ -575,6 +575,7 @@ static VALUE
|
||||||
rb_hash_become(hash, hash2)
|
rb_hash_become(hash, hash2)
|
||||||
VALUE hash, hash2;
|
VALUE hash, hash2;
|
||||||
{
|
{
|
||||||
|
if (hash == hash2) return hash;
|
||||||
hash2 = to_hash(hash2);
|
hash2 = to_hash(hash2);
|
||||||
rb_hash_clear(hash);
|
rb_hash_clear(hash);
|
||||||
st_foreach(RHASH(hash2)->tbl, replace_i, hash);
|
st_foreach(RHASH(hash2)->tbl, replace_i, hash);
|
||||||
|
|
Loading…
Reference in a new issue