From e7f447b6a3473a572d3e6c191128f1796477860d Mon Sep 17 00:00:00 2001 From: Nathan Scott Date: Tue, 4 Apr 2023 16:24:37 +1000 Subject: 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. --- Header.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'Header.c') diff --git a/Header.c b/Header.c index 1953c020..b2fc56cc 100644 --- a/Header.c +++ b/Header.c @@ -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); -- cgit v1.2.3