summaryrefslogtreecommitdiffstats
path: root/Header.c
diff options
context:
space:
mode:
authorNathan Scott <nathans@redhat.com>2023-04-04 16:24:37 +1000
committerBenBE <BenBE@geshi.org>2023-04-06 00:19:54 +0200
commite7f447b6a3473a572d3e6c191128f1796477860d (patch)
tree1e8a90d216055dfe77b688fc48c0a42f18637d71 /Header.c
parentc8a61850dd31ab64eb8ad83929ce86d2adbeb96c (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.c9
1 files changed, 5 insertions, 4 deletions
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, &param))
+ if (!DynamicMeter_search(this->settings->dynamicMeters, dynamic, &param))
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);

© 2014-2024 Faster IT GmbH | imprint | privacy policy