diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-07-20 08:35:25 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-07-20 08:35:25 +0000 |
commit | aa0e51b529f4f06c0d44c4323b65655a024643f9 (patch) | |
tree | 6f2f7540de09d53478ed71e7469c9766d0145080 /array.c | |
parent | 306b64bd1a05473319ca57e543e53dc56dca4c1c (diff) |
hash.c: rb_hash_add_new_element
* hash.c (rb_hash_add_new_element): add new element or do nothing
if it is contained already.
* array.c (ary_add_hash, ary_add_hash_by): use
rb_hash_add_new_element.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'array.c')
-rw-r--r-- | array.c | 8 |
1 files changed, 2 insertions, 6 deletions
@@ -4008,9 +4008,7 @@ ary_add_hash(VALUE hash, VALUE ary) for (i=0; i<RARRAY_LEN(ary); i++) { VALUE elt = RARRAY_AREF(ary, i); - if (rb_hash_lookup2(hash, elt, Qundef) == Qundef) { - rb_hash_aset(hash, elt, elt); - } + rb_hash_add_new_element(hash, elt, elt); } return hash; } @@ -4038,9 +4036,7 @@ ary_add_hash_by(VALUE hash, VALUE ary) for (i = 0; i < RARRAY_LEN(ary); ++i) { VALUE v = rb_ary_elt(ary, i), k = rb_yield(v); - if (rb_hash_lookup2(hash, k, Qundef) == Qundef) { - rb_hash_aset(hash, k, v); - } + rb_hash_add_new_element(hash, k, v); } return hash; } |