Ensure we do not attempt to add a DynamicMeter via the

htoprc that we didn't find during start up.  This just
leaves blank sections of the display as @smalinux found.

Related to https://github.com/htop-dev/htop/pull/682
This commit is contained in:
Nathan Scott
2021-07-12 16:03:29 +10:00
parent bf22a8fb13
commit a476490282
4 changed files with 22 additions and 14 deletions

View File

@ -36,20 +36,24 @@ Hashtable* DynamicMeters_new(void) {
typedef struct {
unsigned int key;
const char* name;
bool found;
} DynamicIterator;
static void DynamicMeter_compare(ht_key_t key, void* value, void* data) {
const DynamicMeter* meter = (const DynamicMeter*)value;
DynamicIterator* iter = (DynamicIterator*)data;
if (String_eq(iter->name, meter->name))
if (String_eq(iter->name, meter->name)) {
iter->found = true;
iter->key = key;
}
}
unsigned int DynamicMeter_search(const ProcessList* pl, const char* name) {
DynamicIterator iter = { .key = 0, .name = name };
bool DynamicMeter_search(const ProcessList* pl, const char* name, unsigned int* key) {
DynamicIterator iter = { .key = 0, .name = name, .found = false };
if (pl->dynamicMeters)
Hashtable_foreach(pl->dynamicMeters, DynamicMeter_compare, &iter);
return iter.key;
*key = iter.key;
return iter.found;
}
const char* DynamicMeter_lookup(const ProcessList* pl, unsigned int key) {