]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
Pass strcmp() to c_avl_create() as function pointer, not data one
authorEero Tamminen <eero.t.tamminen@intel.com>
Wed, 17 Jan 2024 15:19:16 +0000 (17:19 +0200)
committerEero Tamminen <eero.t.tamminen@intel.com>
Fri, 19 Jan 2024 17:07:16 +0000 (19:07 +0200)
Matches how strcmp() is passed to c_avl_create() elsewhere.

Reported by -Wpendantic:
------------------------------------
write_prometheus.c: In function ‘prom_init’:
write_prometheus.c:900:28: error: ISO C forbids conversion of function pointer to object pointer type [-Werror=pedantic]
  900 |     metrics = c_avl_create((void *)strcmp);
      |                            ^
write_prometheus.c:900:28: error: ISO C forbids passing argument 1 of ‘c_avl_create’ between function pointer and ‘void *’ [-Werror=pedantic]
  900 |     metrics = c_avl_create((void *)strcmp);
      |                            ^~~~~~~~~~~~~~
In file included from write_prometheus.c:30:
utils/avltree/avltree.h:54:34: note: expected ‘int (*)(const void *, const void *)’ but argument is of type ‘void *’
   54 | c_avl_tree_t *c_avl_create(int (*compare)(const void *, const void *));
      |
                                   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
------------------------------------

Signed-off-by: Eero Tamminen <eero.t.tamminen@intel.com>
src/redfish.c
src/utils/format_stackdriver/format_stackdriver.c
src/write_prometheus.c

index 8cfbb2924fdb9a74c6d1c25363d78eca633806e5..9f3d5b7af4864c2a66b6fd41687249e10d4f2e0f 100644 (file)
@@ -283,7 +283,7 @@ static int redfish_preconfig(void) {
     goto error;
 
   /* Creating placeholder for queries */
-  ctx.queries = c_avl_create((void *)strcmp);
+  ctx.queries = c_avl_create((int (*)(const void *, const void *))strcmp);
   if (ctx.services == NULL)
     goto free_services;
 
index 907a23cba02c6c1a490e9d4c7ef62372b74f0a5b..c253645579c606282c13fb2a5117f55262b6a606 100644 (file)
@@ -493,13 +493,14 @@ sd_output_t *sd_output_create(sd_resource_t *res) /* {{{ */
     return NULL;
   }
 
-  out->staged = c_avl_create((void *)strcmp);
+  out->staged = c_avl_create((int (*)(const void *, const void *))strcmp);
   if (out->staged == NULL) {
     sd_output_destroy(out);
     return NULL;
   }
 
-  out->metric_descriptors = c_avl_create((void *)strcmp);
+  out->metric_descriptors =
+      c_avl_create((int (*)(const void *, const void *))strcmp);
   if (out->metric_descriptors == NULL) {
     sd_output_destroy(out);
     return NULL;
index adf76ea632a6df062d8bcb4991ef66caf8c3ccb4..ba80436d0fb0de4f3a3d6a711de535bfb8b9f602 100644 (file)
@@ -897,7 +897,7 @@ static int prom_config(oconfig_item_t *ci) {
 
 static int prom_init() {
   if (metrics == NULL) {
-    metrics = c_avl_create((void *)strcmp);
+    metrics = c_avl_create((int (*)(const void *, const void *))strcmp);
     if (metrics == NULL) {
       ERROR("write_prometheus plugin: c_avl_create() failed.");
       return -1;