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 + + * hash.c (rb_hash_s_create): should access converted hash value. + [ruby-dev:34555] + Thu May 1 20:31:09 2008 Yukihiro Matsumoto * 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; }