summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--hash.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 6841574c6a..453226880b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu May 1 20:47:30 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * hash.c (rb_hash_s_create): should access converted hash value.
+ [ruby-dev:34555]
+
Thu May 1 20:31:09 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* test/ruby/test_parse.rb (TestParse::test_void_expr_stmts_value):
diff --git a/hash.c b/hash.c
index 8d3567e315..2ba8033b77 100644
--- a/hash.c
+++ b/hash.c
@@ -344,8 +344,8 @@ rb_hash_s_create(int argc, VALUE *argv, VALUE klass)
tmp = rb_hash_s_try_convert(Qnil, argv[0]);
if (!NIL_P(tmp)) {
hash = hash_alloc(klass);
- if (RHASH(argv[0])->ntbl) {
- RHASH(hash)->ntbl = st_copy(RHASH(argv[0])->ntbl);
+ if (RHASH(tmp)->ntbl) {
+ RHASH(hash)->ntbl = st_copy(RHASH(tmp)->ntbl);
}
return hash;
}