1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

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

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
normal 2016-01-26 05:33:28 +00:00
parent a52be8fb8f
commit 667c0a3a8c
3 changed files with 12 additions and 1 deletions

View file

@ -1,3 +1,8 @@
Tue Jan 26 14:26:46 2016 Eric Wong <e@80x24.org>
* 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@ruby-lang.org>
* signal.c (rb_f_kill): should immediately deliver reserved

View file

@ -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;
}

View file

@ -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