ruby-changes:41583
From: normal <ko1@a...>
Date: Tue, 26 Jan 2016 14:32:37 +0900 (JST)
Subject: [ruby-changes:41583] normal:r53657 (trunk): Signal.list deduplicates keys
normal 2016-01-26 14:33:28 +0900 (Tue, 26 Jan 2016) New Revision: 53657 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=53657 Log: Signal.list deduplicates keys This allows us to reuse string objects used in symbols as well as any string representations of signal names in source code. * signal.c (sig_list): use fstring for hash key * test/ruby/test_signal.rb (test_signal_list_dedupe_keys): added Modified files: trunk/ChangeLog trunk/signal.c trunk/test/ruby/test_signal.rb Index: test/ruby/test_signal.rb =================================================================== --- test/ruby/test_signal.rb (revision 53656) +++ test/ruby/test_signal.rb (revision 53657) @@ -301,4 +301,10 @@ EOS https://github.com/ruby/ruby/blob/trunk/test/ruby/test_signal.rb#L301 assert_ruby_status(['-e', 'Process.kill(:CONT, $$)']) end end if Process.respond_to?(:kill) + + def test_signal_list_dedupe_keys + a = Signal.list.keys.map(&:object_id).sort + b = Signal.list.keys.map(&:object_id).sort + assert_equal a, b + end end Index: signal.c =================================================================== --- signal.c (revision 53656) +++ signal.c (revision 53657) @@ -1347,7 +1347,7 @@ sig_list(void) https://github.com/ruby/ruby/blob/trunk/signal.c#L1347 const struct signals *sigs; for (sigs = siglist; sigs->signm; sigs++) { - rb_hash_aset(h, rb_str_new2(sigs->signm), INT2FIX(sigs->signo)); + rb_hash_aset(h, rb_fstring_cstr(sigs->signm), INT2FIX(sigs->signo)); } return h; } Index: ChangeLog =================================================================== --- ChangeLog (revision 53656) +++ ChangeLog (revision 53657) @@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Tue Jan 26 14:26:46 2016 Eric Wong <e@8...> + + * signal.c (sig_list): use fstring for hash key + * test/ruby/test_signal.rb (test_signal_list_dedupe_keys): added + Tue Jan 26 13:08:34 2016 Nobuyoshi Nakada <nobu@r...> * signal.c (rb_f_kill): should immediately deliver reserved -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/