diff options
author | Christian Göttsche <cgzones@googlemail.com> | 2021-04-14 20:47:42 +0200 |
---|---|---|
committer | cgzones <cgzones@googlemail.com> | 2021-04-26 17:51:45 +0200 |
commit | 436808ff99d7b7e6f5d6e8f3127d9d03f6295f98 (patch) | |
tree | 46610957022066f7da0170c1edcc5991435d5400 /TasksMeter.c | |
parent | 099dab88be5a7a1c9207e7bc7116618b7108f851 (diff) |
Use RichString_appendnAscii where possible
`RichString_appendnAscii()` avoids a `strlen(3)` call over
` RichString_appendAscii()`.
Use the former where the length is available from a previous checked
`snprintf(3)` call.
Keep `RichString_appendAscii()` when passing a string literal and
rely on compilers to optimize the `strlen(3)` call away.
Diffstat (limited to 'TasksMeter.c')
-rw-r--r-- | TasksMeter.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/TasksMeter.c b/TasksMeter.c index 9c6b9cd8..3840bf9b 100644 --- a/TasksMeter.c +++ b/TasksMeter.c @@ -38,23 +38,24 @@ static void TasksMeter_display(const Object* cast, RichString* out) { const Meter* this = (const Meter*)cast; const Settings* settings = this->pl->settings; char buffer[20]; + int len; - xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[2]); - RichString_writeAscii(out, CRT_colors[METER_VALUE], buffer); + len = xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[2]); + RichString_appendnAscii(out, CRT_colors[METER_VALUE], buffer, len); RichString_appendAscii(out, settings->hideUserlandThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], ", "); - xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[1]); - RichString_appendAscii(out, settings->hideUserlandThreads ? CRT_colors[METER_SHADOW] : CRT_colors[TASKS_RUNNING], buffer); + len = xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[1]); + RichString_appendnAscii(out, settings->hideUserlandThreads ? CRT_colors[METER_SHADOW] : CRT_colors[TASKS_RUNNING], buffer, len); RichString_appendAscii(out, settings->hideUserlandThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], " thr"); RichString_appendAscii(out, settings->hideKernelThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], ", "); - xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[0]); - RichString_appendAscii(out, settings->hideKernelThreads ? CRT_colors[METER_SHADOW] : CRT_colors[TASKS_RUNNING], buffer); + len = xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[0]); + RichString_appendnAscii(out, settings->hideKernelThreads ? CRT_colors[METER_SHADOW] : CRT_colors[TASKS_RUNNING], buffer, len); RichString_appendAscii(out, settings->hideKernelThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], " kthr"); RichString_appendAscii(out, CRT_colors[METER_TEXT], "; "); - xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[3]); - RichString_appendAscii(out, CRT_colors[TASKS_RUNNING], buffer); + len = xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[3]); + RichString_appendnAscii(out, CRT_colors[TASKS_RUNNING], buffer, len); RichString_appendAscii(out, CRT_colors[METER_TEXT], " running"); } |