SystemMonitor: Consistently use u64 for ValueFormat::text_formatter

ValueFormat::text_formatter is called with a u64 retrieved from
GraphWidget::m_values. However, the function pointer definition used
size_t and all the users of text_formatter used int.  If bytes was over
~2 billion, we would interpret bytes to be negative. We then pass this
into `human_readable_size` which converts it to a u64, making it out to
be about 15.9 EiB.

This is fixed by making everything in the path take a u64.
This commit is contained in:
Luke Wilde 2022-05-05 20:17:43 +01:00 committed by Linus Groh
parent b96b2fb9be
commit caf652799f
Notes: sideshowbarker 2024-07-17 11:16:27 +09:00
2 changed files with 6 additions and 6 deletions

View file

@ -26,7 +26,7 @@ public:
struct ValueFormat {
Gfx::ColorRole graph_color_role { Gfx::ColorRole::Base };
Color text_shadow_color { Color::Transparent };
Function<String(size_t)> text_formatter;
Function<String(u64)> text_formatter;
};
void set_value_format(size_t index, ValueFormat&& format)
{

View file

@ -661,13 +661,13 @@ void build_performance_tab(GUI::Widget& graphs_container)
cpu_graph.set_max(100);
cpu_graph.set_value_format(0, {
.graph_color_role = ColorRole::SyntaxPreprocessorStatement,
.text_formatter = [](int value) {
.text_formatter = [](u64 value) {
return String::formatted("Total: {}%", value);
},
});
cpu_graph.set_value_format(1, {
.graph_color_role = ColorRole::SyntaxPreprocessorValue,
.text_formatter = [](int value) {
.text_formatter = [](u64 value) {
return String::formatted("Kernel: {}%", value);
},
});
@ -687,19 +687,19 @@ void build_performance_tab(GUI::Widget& graphs_container)
auto& memory_graph = *graphs_container.find_descendant_of_type_named<SystemMonitor::GraphWidget>("memory_graph");
memory_graph.set_value_format(0, {
.graph_color_role = ColorRole::SyntaxComment,
.text_formatter = [](int bytes) {
.text_formatter = [](u64 bytes) {
return String::formatted("Committed: {}", human_readable_size(bytes));
},
});
memory_graph.set_value_format(1, {
.graph_color_role = ColorRole::SyntaxPreprocessorStatement,
.text_formatter = [](int bytes) {
.text_formatter = [](u64 bytes) {
return String::formatted("Allocated: {}", human_readable_size(bytes));
},
});
memory_graph.set_value_format(2, {
.graph_color_role = ColorRole::SyntaxPreprocessorValue,
.text_formatter = [](int bytes) {
.text_formatter = [](u64 bytes) {
return String::formatted("Kernel heap: {}", human_readable_size(bytes));
},
});