memcached plugin: fix compiler warning on Solaris
authorRuben Kerkhof <ruben@rubenkerkhof.com>
Sun, 24 Jul 2016 11:41:00 +0000 (13:41 +0200)
committerRuben Kerkhof <ruben@rubenkerkhof.com>
Sun, 24 Jul 2016 11:44:47 +0000 (13:44 +0200)
|  ud.free_func = (void *) memcached_free;
|               ^  line 559, memcached.c
assignment type mismatch:
pointer to function(pointer to void) returning void "=" pointer to void

Casting a function pointer to a void pointer is undefined behaviour
in C (it is defined in POSIX however)

src/memcached.c

index 62ac72a..54e3a19 100644 (file)
@@ -52,8 +52,9 @@ typedef struct memcached_s memcached_t;
 
 static _Bool memcached_have_instances = 0;
 
-static void memcached_free (memcached_t *st)
+static void memcached_free (void *arg)
 {
+  memcached_t *st = arg;
   if (st == NULL)
     return;
 
@@ -556,7 +557,7 @@ static int memcached_add_read_callback (memcached_t *st)
 
   memset (&ud, 0, sizeof (ud));
   ud.data = st;
-  ud.free_func = (void *) memcached_free;
+  ud.free_func = memcached_free;
 
   assert (st->name != NULL);
   ssnprintf (callback_name, sizeof (callback_name), "memcached/%s", st->name);