diff options
author | Luke Wilde <lukew@serenityos.org> | 2022-05-05 20:17:43 +0100 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-05-05 21:25:04 +0200 |
commit | caf652799f04d6008eae4ab793f393748f8ccd18 (patch) | |
tree | 6e12dcdd57bb31fb643653f1ed4cd8daa767f543 /Userland/Applications/SystemMonitor | |
parent | b96b2fb9bec6e83d7745e7ec5f4c061066f23b93 (diff) | |
download | serenity-caf652799f04d6008eae4ab793f393748f8ccd18.zip |
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.
Diffstat (limited to 'Userland/Applications/SystemMonitor')
-rw-r--r-- | Userland/Applications/SystemMonitor/GraphWidget.h | 2 | ||||
-rw-r--r-- | Userland/Applications/SystemMonitor/main.cpp | 10 |
2 files changed, 6 insertions, 6 deletions
diff --git a/Userland/Applications/SystemMonitor/GraphWidget.h b/Userland/Applications/SystemMonitor/GraphWidget.h index 26f078fdd2..0b8df57f9c 100644 --- a/Userland/Applications/SystemMonitor/GraphWidget.h +++ b/Userland/Applications/SystemMonitor/GraphWidget.h @@ -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) { diff --git a/Userland/Applications/SystemMonitor/main.cpp b/Userland/Applications/SystemMonitor/main.cpp index 83385035df..c7d64d6f07 100644 --- a/Userland/Applications/SystemMonitor/main.cpp +++ b/Userland/Applications/SystemMonitor/main.cpp @@ -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)); }, }); |