1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* hash.c (hash_alloc0, hash_alloc): unified because hash_alloc doesn't

allocate st_table now.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13313 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2007-08-30 00:41:24 +00:00
parent 1591776d46
commit 2b18d1ee8e
2 changed files with 4 additions and 12 deletions

View file

@ -10,6 +10,8 @@ Thu Aug 30 08:00:12 2007 Tanaka Akira <akr@fsij.org>
(RHASH_IFNONE): ditto.
(RHASH_SIZE): ditto.
(RHASH_EMPTY_P): ditto.
(hash_alloc0, hash_alloc): unified because hash_alloc doesn't
allocate st_table now.
* hash.c: delay st_table allocation.

14
hash.c
View file

@ -203,7 +203,7 @@ rb_hash_foreach(VALUE hash, int (*func)(ANYARGS), VALUE farg)
}
static VALUE
hash_alloc0(VALUE klass)
hash_alloc(VALUE klass)
{
NEWOBJ(hash, struct RHash);
OBJSETUP(hash, klass, T_HASH);
@ -213,16 +213,6 @@ hash_alloc0(VALUE klass)
return (VALUE)hash;
}
static VALUE
hash_alloc(VALUE klass)
{
VALUE hash = hash_alloc0(klass);
RHASH(hash)->ntbl = 0;
return hash;
}
VALUE
rb_hash_new(void)
{
@ -329,7 +319,7 @@ rb_hash_s_create(int argc, VALUE *argv, VALUE klass)
int i;
if (argc == 1 && TYPE(argv[0]) == T_HASH) {
hash = hash_alloc0(klass);
hash = hash_alloc(klass);
if (RHASH(argv[0])->ntbl) {
RHASH(hash)->ntbl = st_copy(RHASH(argv[0])->ntbl);
}