From 0daefbe4b452f9373bdfb9950b5b17d01cc77dec Mon Sep 17 00:00:00 2001 From: Nathan Scott Date: Mon, 12 Jul 2021 19:11:39 +1000 Subject: [PATCH] Improve the DynamicMeter_search API to make 'key' optional Thanks to @BenBE for the suggestion. --- DynamicMeter.c | 3 ++- pcp/PCPDynamicMeter.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/DynamicMeter.c b/DynamicMeter.c index 0b4063f2..66dde068 100644 --- a/DynamicMeter.c +++ b/DynamicMeter.c @@ -52,7 +52,8 @@ bool DynamicMeter_search(Hashtable* dynamics, const char* name, unsigned int* ke DynamicIterator iter = { .key = 0, .name = name, .found = false }; if (dynamics) Hashtable_foreach(dynamics, DynamicMeter_compare, &iter); - *key = iter.key; + if (key) + *key = iter.key; return iter.found; } diff --git a/pcp/PCPDynamicMeter.c b/pcp/PCPDynamicMeter.c index 2291167f..7cdb24bf 100644 --- a/pcp/PCPDynamicMeter.c +++ b/pcp/PCPDynamicMeter.c @@ -140,8 +140,7 @@ static bool PCPDynamicMeter_validateMeterName(char* key, const char* path, unsig // Ensure a meter name has not been defined previously static bool PCPDynamicMeter_uniqueName(char* key, const char* path, unsigned int line, PCPDynamicMeters* meters) { - unsigned int param = 0; - if (DynamicMeter_search(meters->table, key, ¶m) == false) + if (DynamicMeter_search(meters->table, key, NULL) == false) return true; fprintf(stderr, "%s: duplicate name at %s line %u: \"%s\", ignored\n", @@ -199,6 +198,7 @@ static void PCPDynamicMeter_parseFile(PCPDynamicMeters* meters, const char* path if (caption) { free_and_xStrdup(&meter->super.caption, caption); free(caption); + caption = NULL; } } else if (value && meter && String_eq(key, "description")) { free_and_xStrdup(&meter->super.description, value);