summaryrefslogtreecommitdiffstats
path: root/zfs
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2021-04-14 20:47:42 +0200
committercgzones <cgzones@googlemail.com>2021-04-26 17:51:45 +0200
commit436808ff99d7b7e6f5d6e8f3127d9d03f6295f98 (patch)
tree46610957022066f7da0170c1edcc5991435d5400 /zfs
parent099dab88be5a7a1c9207e7bc7116618b7108f851 (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 'zfs')
-rw-r--r--zfs/ZfsCompressedArcMeter.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/zfs/ZfsCompressedArcMeter.c b/zfs/ZfsCompressedArcMeter.c
index 85fcee95..201bf410 100644
--- a/zfs/ZfsCompressedArcMeter.c
+++ b/zfs/ZfsCompressedArcMeter.c
@@ -32,12 +32,12 @@ void ZfsCompressedArcMeter_readStats(Meter* this, const ZfsArcStats* stats) {
}
}
-static void ZfsCompressedArcMeter_printRatioString(const Meter* this, char* buffer, size_t size) {
+static int ZfsCompressedArcMeter_printRatioString(const Meter* this, char* buffer, size_t size) {
if (this->values[0] > 0) {
- xSnprintf(buffer, size, "%.2f:1", this->total / this->values[0]);
- } else {
- xSnprintf(buffer, size, "N/A");
+ return xSnprintf(buffer, size, "%.2f:1", this->total / this->values[0]);
}
+
+ return xSnprintf(buffer, size, "N/A");
}
static void ZfsCompressedArcMeter_updateValues(Meter* this) {
@@ -51,14 +51,16 @@ static void ZfsCompressedArcMeter_display(const Object* cast, RichString* out) {
if (this->values[0] > 0) {
char buffer[50];
+ int len;
+
Meter_humanUnit(buffer, this->total, sizeof(buffer));
RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer);
RichString_appendAscii(out, CRT_colors[METER_TEXT], " Uncompressed, ");
Meter_humanUnit(buffer, this->values[0], sizeof(buffer));
RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer);
RichString_appendAscii(out, CRT_colors[METER_TEXT], " Compressed, ");
- ZfsCompressedArcMeter_printRatioString(this, buffer, sizeof(buffer));
- RichString_appendAscii(out, CRT_colors[ZFS_RATIO], buffer);
+ len = ZfsCompressedArcMeter_printRatioString(this, buffer, sizeof(buffer));
+ RichString_appendnAscii(out, CRT_colors[ZFS_RATIO], buffer, len);
RichString_appendAscii(out, CRT_colors[METER_TEXT], " Ratio");
} else {
RichString_writeAscii(out, CRT_colors[METER_TEXT], " ");

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