diff --git a/ChangeLog b/ChangeLog index 71aed6e955..60b51def02 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Jan 26 14:26:46 2016 Eric Wong + + * 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 * signal.c (rb_f_kill): should immediately deliver reserved diff --git a/signal.c b/signal.c index cac90db69c..492e682660 100644 --- a/signal.c +++ b/signal.c @@ -1347,7 +1347,7 @@ sig_list(void) 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; } diff --git a/test/ruby/test_signal.rb b/test/ruby/test_signal.rb index 13d52013b0..c48a4ad400 100644 --- a/test/ruby/test_signal.rb +++ b/test/ruby/test_signal.rb @@ -301,4 +301,10 @@ EOS 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