From fc939f669730844b47e761b11e0f7058f113031f Mon Sep 17 00:00:00 2001 From: normal Date: Sat, 30 Dec 2017 00:00:23 +0000 Subject: hash literal deduplicates like Hash#[]= From: Eric Wong * hash.c (rb_hash_key_str): new function (hash_aset_str): use rb_hash_key_str * internal.h: add rb_hash_key_str * st.c (st_stringify): use rb_hash_key_str * test/ruby/test_hash.rb (test_NEWHASH_fstring_key): dynamic key [ruby-core:84554] [Feature #14258] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- st.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'st.c') diff --git a/st.c b/st.c index 048e8a22dc..5ca6263db0 100644 --- a/st.c +++ b/st.c @@ -2114,8 +2114,8 @@ st_rehash(st_table *tab) static st_data_t st_stringify(VALUE key) { - return (rb_obj_class(key) == rb_cString) ? - rb_str_new_frozen(key) : key; + return (rb_obj_class(key) == rb_cString && !RB_OBJ_FROZEN(key)) ? + rb_hash_key_str(key) : key; } static void -- cgit v1.2.3