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:
parent
a52be8fb8f
commit
667c0a3a8c
3 changed files with 12 additions and 1 deletions
|
@ -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>
|
Tue Jan 26 13:08:34 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* signal.c (rb_f_kill): should immediately deliver reserved
|
* signal.c (rb_f_kill): should immediately deliver reserved
|
||||||
|
|
2
signal.c
2
signal.c
|
@ -1347,7 +1347,7 @@ sig_list(void)
|
||||||
const struct signals *sigs;
|
const struct signals *sigs;
|
||||||
|
|
||||||
for (sigs = siglist; sigs->signm; 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;
|
return h;
|
||||||
}
|
}
|
||||||
|
|
|
@ -301,4 +301,10 @@ EOS
|
||||||
assert_ruby_status(['-e', 'Process.kill(:CONT, $$)'])
|
assert_ruby_status(['-e', 'Process.kill(:CONT, $$)'])
|
||||||
end
|
end
|
||||||
end if Process.respond_to?(:kill)
|
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
|
end
|
||||||
|
|
Loading…
Reference in a new issue