From 285fb215d12a5e0c686b29e1039027cbb2b246da Mon Sep 17 00:00:00 2001 From: aristocratos Date: Thu, 28 Dec 2023 13:10:18 +0100 Subject: [PATCH] Proc::draw() -> Use std::erase_if() instead of for loops --- src/btop_draw.cpp | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/btop_draw.cpp b/src/btop_draw.cpp index 97195f1..0ceaa2f 100644 --- a/src/btop_draw.cpp +++ b/src/btop_draw.cpp @@ -1799,7 +1799,7 @@ namespace Proc { p_counters[p.pid] = 0; } else if (p.cpu_p < 0.1 and ++p_counters[p.pid] >= 10) { - p_graphs.erase(p.pid); + if (p_graphs.contains(p.pid)) p_graphs.erase(p.pid); p_counters.erase(p.pid); } else @@ -1927,22 +1927,18 @@ namespace Proc { //? Clear out left over graphs from dead processes at a regular interval if (not data_same and ++counter >= 100) { counter = 0; - for (auto element = p_graphs.begin(); element != p_graphs.end();) { - if (rng::find(plist, element->first, &proc_info::pid) == plist.end()) { - element = p_graphs.erase(element); - p_counters.erase(element->first); - } - else - ++element; - } - for (auto element = p_wide_cmd.begin(); element != p_wide_cmd.end();) { - if (rng::find(plist, element->first, &proc_info::pid) == plist.end()) { - element = p_wide_cmd.erase(element); - } - else - ++element; - } + std::erase_if(p_graphs, [&](const auto& pair) { + return rng::find(plist, pair.first, &proc_info::pid) == plist.end(); + }); + + std::erase_if(p_counters, [&](const auto& pair) { + return rng::find(plist, pair.first, &proc_info::pid) == plist.end(); + }); + + std::erase_if(p_wide_cmd, [&](const auto& pair) { + return rng::find(plist, pair.first, &proc_info::pid) == plist.end(); + }); } if (selected == 0 and selected_pid != 0) {