aboutsummaryrefslogtreecommitdiffstats
path: root/array.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-07-20 08:35:25 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-07-20 08:35:25 +0000
commit197ede0e7f2b42cd96395b71bb1e5e432c49f1c6 (patch)
tree6f2f7540de09d53478ed71e7469c9766d0145080 /array.c
parente31526d1f0f5537d87e2651b641e063aa42f4389 (diff)
downloadruby-197ede0e7f2b42cd96395b71bb1e5e432c49f1c6.tar.gz
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.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/array.c b/array.c
index 6f1d65a88e..5ca7a93972 100644
--- a/array.c
+++ b/array.c
@@ -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;
}