summaryrefslogtreecommitdiffstats
path: root/hash.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-10-13 06:44:42 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-10-13 06:44:42 +0000
commit2194e2cf60e9097a22c584ebb25ac23c1fa8048a (patch)
tree15b69a971374cd5d1fd5413ba6d9d659f56c27f0 /hash.c
parent49afb7c7b164a1ecc1bbc1aa7668e6b2faca68ed (diff)
downloadruby-2194e2cf60e9097a22c584ebb25ac23c1fa8048a.tar.gz
ruby-2194e2cf60e9097a22c584ebb25ac23c1fa8048a.tar.xz
ruby-2194e2cf60e9097a22c584ebb25ac23c1fa8048a.zip
*** empty log message ***
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'hash.c')
-rw-r--r--hash.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/hash.c b/hash.c
index a0d11c06d..8e30de7dd 100644
--- a/hash.c
+++ b/hash.c
@@ -264,7 +264,6 @@ rb_hash_s_create(argc, argv, klass)
hash = rb_hash_new2(klass);
for (i=0; i<argc; i+=2) {
- if (NIL_P(argv[i+1])) continue;
st_insert(RHASH(hash)->tbl, argv[i], argv[i+1]);
}
@@ -363,6 +362,9 @@ rb_hash_fetch(argc, argv, hash)
}
return rb_yield(argv[0]);
}
+ if (argc == 1) {
+ rb_raise(rb_eIndexError, "key not found");
+ }
return if_none;
}
return val;
@@ -521,10 +523,6 @@ rb_hash_aset(hash, key, val)
VALUE hash, key, val;
{
rb_hash_modify(hash);
- if (NIL_P(val)) {
- rb_hash_delete(hash, key);
- return Qnil;
- }
if (TYPE(key) != T_STRING || st_lookup(RHASH(hash)->tbl, key, 0)) {
st_insert(RHASH(hash)->tbl, key, val);
}