* hash.c (rb_hash_rehash): fix to free new st_table when exception
is raised in do_hash(). [Bug #9187]
* hash.c (rb_hash_rehash): make temporary st_table under the control
of GC. [Bug #9187]
* test/ruby/test_hash.rb: add a test for above.
* array.c (rb_hash_rehash): use hash_alloc() instead of rb_hash_new().
[Bug #9187]
merge revision(s) 43942,43957,43975: [Backport #9187]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@44938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e