mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
YJIT: handle when all counters are zero in printout code
Also filter with not equal to zero instead of greater than zero, in case there is memory corruption and counters are negative. Fixes Shopify/ruby#70
This commit is contained in:
parent
eaab6605b7
commit
7f7e79d802
1 changed files with 6 additions and 1 deletions
7
ujit.rb
7
ujit.rb
|
|
@ -67,9 +67,14 @@ module UJIT
|
|||
def print_counters(counters, prefix:, prompt:)
|
||||
$stderr.puts(prompt)
|
||||
counters = counters.filter { |key, _| key.start_with?(prefix) }
|
||||
counters.filter! { |_, value| value > 0 }
|
||||
counters.filter! { |_, value| value != 0 }
|
||||
counters.transform_keys! { |key| key.to_s.delete_prefix(prefix) }
|
||||
|
||||
if counters.empty?
|
||||
$stderr.puts(" (all relevant counters are zero)")
|
||||
return
|
||||
end
|
||||
|
||||
counters = counters.to_a
|
||||
counters.sort_by! { |(_, counter_value)| counter_value }
|
||||
longest_name_length = counters.max_by { |(name, _)| name.length }.first.length
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue