* 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
Родитель 1591776d46
Коммит 2b18d1ee8e
2 изменённых файлов: 4 добавлений и 12 удалений

Просмотреть файл

@ -10,6 +10,8 @@ Thu Aug 30 08:00:12 2007 Tanaka Akira <akr@fsij.org>
(RHASH_IFNONE): ditto. (RHASH_IFNONE): ditto.
(RHASH_SIZE): ditto. (RHASH_SIZE): ditto.
(RHASH_EMPTY_P): 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. * hash.c: delay st_table allocation.

14
hash.c
Просмотреть файл

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