diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-10-02 12:23:17 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-10-02 12:23:17 +0000 |
commit | 4fb1438b9d7f617c7a8dc37935a960a24219e697 (patch) | |
tree | 10013564063d5a69c726d560dda969dc0861ed8b | |
parent | 548698397a99065717fdc7766eaabf6af7a4026e (diff) | |
download | ruby-4fb1438b9d7f617c7a8dc37935a960a24219e697.tar.gz |
use rb_hash_new_with_size()
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | compile.c | 4 | ||||
-rw-r--r-- | gc.c | 2 | ||||
-rw-r--r-- | re.c | 6 |
3 files changed, 6 insertions, 6 deletions
@@ -7203,7 +7203,7 @@ iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *const anchor, case TS_CDHASH: { int i; - VALUE map = rb_hash_new(); + VALUE map = rb_hash_new_with_size(RARRAY_LEN(op)/2); rb_hash_tbl_raw(map)->type = &cdhash_type; op = rb_convert_type_with_id(op, T_ARRAY, "Array", idTo_ary); @@ -8525,7 +8525,7 @@ static VALUE ibf_load_object_hash(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset) { const struct ibf_object_hash *hash = IBF_OBJBODY(struct ibf_object_hash, offset); - VALUE obj = rb_hash_new(); + VALUE obj = rb_hash_new_with_size(hash->len); int i; for (i=0; i<hash->len; i++) { @@ -6735,7 +6735,7 @@ static const char *type_name(int type, VALUE obj); static void gc_count_add_each_types(VALUE hash, const char *name, const size_t *types) { - VALUE result = rb_hash_new(); + VALUE result = rb_hash_new_with_size(T_MASK); int i; for (i=0; i<T_MASK; i++) { const char *type = type_name(i, 0); @@ -820,9 +820,9 @@ reg_named_captures_iter(const OnigUChar *name, const OnigUChar *name_end, static VALUE rb_reg_named_captures(VALUE re) { - VALUE hash = rb_hash_new(); - rb_reg_check(re); - onig_foreach_name(RREGEXP_PTR(re), reg_named_captures_iter, (void*)hash); + regex_t *reg = (rb_reg_check(re), RREGEXP_PTR(re)); + VALUE hash = rb_hash_new_with_size(onig_number_of_names(reg)); + onig_foreach_name(reg, reg_named_captures_iter, (void*)hash); return hash; } |