diff options
author | Nathan Scott <nathans@redhat.com> | 2023-04-04 16:24:37 +1000 |
---|---|---|
committer | BenBE <BenBE@geshi.org> | 2023-04-06 00:19:54 +0200 |
commit | e7f447b6a3473a572d3e6c191128f1796477860d (patch) | |
tree | 1e8a90d216055dfe77b688fc48c0a42f18637d71 /Header.c | |
parent | c8a61850dd31ab64eb8ad83929ce86d2adbeb96c (diff) |
Refactor and consolidate dynamic meters/columns pointers
This removes the duplication of dynamic meter/column hashtable
pointers that has come in between the Settings and ProcessList
structures - only one copy of these is needed. With the future
planned dynamic screens feature adding another pointer, let us
first clean this up before any further duplication happens.
Diffstat (limited to 'Header.c')
-rw-r--r-- | Header.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -92,7 +92,7 @@ static void Header_addMeterByName(Header* this, const char* name, MeterModeId mo if ((end = strrchr(dynamic, ')')) == NULL) return; // htoprc parse failure *end = '\0'; - if (!DynamicMeter_search(this->pl->dynamicMeters, dynamic, ¶m)) + if (!DynamicMeter_search(this->settings->dynamicMeters, dynamic, ¶m)) return; // name lookup failure } else { param = 0; @@ -130,10 +130,11 @@ void Header_populateFromSettings(Header* this) { } void Header_writeBackToSettings(const Header* this) { - Settings_setHeaderLayout(this->settings, this->headerLayout); + Settings* settings = this->settings; + Settings_setHeaderLayout(settings, this->headerLayout); Header_forEachColumn(this, col) { - MeterColumnSetting* colSettings = &this->settings->hColumns[col]; + MeterColumnSetting* colSettings = &settings->hColumns[col]; if (colSettings->names) { for (size_t j = 0; j < colSettings->len; j++) @@ -153,7 +154,7 @@ void Header_writeBackToSettings(const Header* this) { const Meter* meter = (Meter*) Vector_get(vec, i); char* name; if (meter->param && As_Meter(meter) == &DynamicMeter_class) { - const char* dynamic = DynamicMeter_lookup(this->pl->dynamicMeters, meter->param); + const char* dynamic = DynamicMeter_lookup(settings->dynamicMeters, meter->param); xAsprintf(&name, "%s(%s)", As_Meter(meter)->name, dynamic); } else if (meter->param && As_Meter(meter) == &CPUMeter_class) { xAsprintf(&name, "%s(%u)", As_Meter(meter)->name, meter->param); |