summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-22 23:27:33 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-22 23:27:33 +0000
commit3227143dc69af1493d12f0f75382dc735bd1cdc3 (patch)
tree254c4bf0b241f4a0f575bee5353f7b457a78c617
parent050811002aff42ab2546d97bd7e75d3d761496d4 (diff)
downloadruby-3227143dc69af1493d12f0f75382dc735bd1cdc3.tar.gz
ruby-3227143dc69af1493d12f0f75382dc735bd1cdc3.tar.xz
ruby-3227143dc69af1493d12f0f75382dc735bd1cdc3.zip
* hash.c (env_aset): allow nil value to remove an entry.
[ruby-dev:36465] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--hash.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 310e47dac..5eb77c987 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Sep 23 08:25:56 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * hash.c (env_aset): allow nil value to remove an entry.
+ [ruby-dev:36465]
+
Tue Sep 23 08:07:07 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* misc/ruby-mode.el (ruby-keyword-end-re): emacs21 support. a
diff --git a/hash.c b/hash.c
index 694b61952..bc627d868 100644
--- a/hash.c
+++ b/hash.c
@@ -2052,7 +2052,8 @@ env_aset(VALUE obj, VALUE nm, VALUE val)
}
if (NIL_P(val)) {
- rb_raise(rb_eTypeError, "cannot assign nil; use Hash#delete instead");
+ env_delete(obj, nm);
+ return Qnil;
}
StringValue(nm);
StringValue(val);