summaryrefslogtreecommitdiffstats
path: root/CPUMeter.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2011-03-31 20:24:59 +0000
committerHisham Muhammad <hisham@gobolinux.org>2011-03-31 20:24:59 +0000
commitbd459776a424e40eb181f269a113eb30eb691cd3 (patch)
tree4a9e59d02ce79ce46fa728f0b932b8847db58461 /CPUMeter.c
parentb57b7e9a9e7b960cf5f2b38e79b332cbff6533df (diff)
retain meter state when it is reinit'ed in the Setup screen
Diffstat (limited to 'CPUMeter.c')
-rw-r--r--CPUMeter.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/CPUMeter.c b/CPUMeter.c
index b6f8d35e..7c90bb6d 100644
--- a/CPUMeter.c
+++ b/CPUMeter.c
@@ -124,12 +124,15 @@ static void CPUMeter_display(Object* cast, RichString* out) {
static void AllCPUsMeter_init(Meter* this) {
int cpus = this->pl->cpuCount;
- this->drawData = malloc(sizeof(Meter*) * cpus);
+ if (!this->drawData)
+ this->drawData = calloc(sizeof(Meter*), cpus);
Meter** meters = (Meter**) this->drawData;
- for (int i = 0; i < cpus; i++)
- meters[i] = Meter_new(this->pl, i+1, &CPUMeter);
- this->h = cpus;
- this->mode = BAR_METERMODE;
+ for (int i = 0; i < cpus; i++) {
+ if (!meters[i])
+ meters[i] = Meter_new(this->pl, i+1, &CPUMeter);
+ meters[i]->type->init(meters[i]);
+ }
+ this->h = Meter_modes[this->mode]->h;
}
static void AllCPUsMeter_done(Meter* this) {

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