зеркало из https://github.com/github/ruby.git
* 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:
Родитель
1591776d46
Коммит
2b18d1ee8e
|
@ -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
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);
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче