summaryrefslogtreecommitdiff
path: root/navit/callback.c
diff options
context:
space:
mode:
authorsleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2013-08-22 21:58:34 +0000
committersleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2013-08-22 21:58:34 +0000
commita6feb9143b95d1bf29dc211392dadfe9be2dd49c (patch)
tree798ef42b227e592d0bd4ebae75abdcc19fedc419 /navit/callback.c
parent9b4d2d7bc71becdfce4a69e84d5e4e132895f8a9 (diff)
downloadnavit-a6feb9143b95d1bf29dc211392dadfe9be2dd49c.tar.gz
Fix:core:Build with -Wstrict-prototypes, fix warnings.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5589 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/callback.c')
-rw-r--r--navit/callback.c28
1 files changed, 19 insertions, 9 deletions
diff --git a/navit/callback.c b/navit/callback.c
index 2bdcd9a51..b5d0ed3c9 100644
--- a/navit/callback.c
+++ b/navit/callback.c
@@ -24,7 +24,9 @@
#include "callback.h"
struct callback {
- void (*func)();
+ /* func has variable number of arguments, not (void),
+ * but we must declare something... */
+ void (*func)(void);
int pcount;
enum attr_type type;
void *p[0];
@@ -157,28 +159,36 @@ callback_call(struct callback *cb, int pcount, void **p)
pf[i+cb->pcount]=p[i];
switch (cb->pcount+pcount) {
case 8:
- cb->func(pf[0],pf[1],pf[2],pf[3],pf[4],pf[5],pf[6],pf[7]);
+ ((int (*)(void*,void*,void*,void*,void*,void*,void*,void*))cb->func)(
+ pf[0],pf[1],pf[2],pf[3],pf[4],pf[5],pf[6],pf[7]);
break;
case 7:
- cb->func(pf[0],pf[1],pf[2],pf[3],pf[4],pf[5],pf[6]);
+ ((int (*)(void*,void*,void*,void*,void*,void*,void*))cb->func)(
+ pf[0],pf[1],pf[2],pf[3],pf[4],pf[5],pf[6]);
break;
case 6:
- cb->func(pf[0],pf[1],pf[2],pf[3],pf[4],pf[5]);
+ ((int (*)(void*,void*,void*,void*,void*,void*))cb->func)(
+ pf[0],pf[1],pf[2],pf[3],pf[4],pf[5]);
break;
case 5:
- cb->func(pf[0],pf[1],pf[2],pf[3],pf[4]);
+ ((int (*)(void*,void*,void*,void*,void*))cb->func)(
+ pf[0],pf[1],pf[2],pf[3],pf[4]);
break;
case 4:
- cb->func(pf[0],pf[1],pf[2],pf[3]);
+ ((int (*)(void*,void*,void*,void*))cb->func)(
+ pf[0],pf[1],pf[2],pf[3]);
break;
case 3:
- cb->func(pf[0],pf[1],pf[2]);
+ ((int (*)(void*,void*,void*))cb->func)(
+ pf[0],pf[1],pf[2]);
break;
case 2:
- cb->func(pf[0],pf[1]);
+ ((int (*)(void*,void*))cb->func)(
+ pf[0],pf[1]);
break;
case 1:
- cb->func(pf[0]);
+ ((int (*)(void*))cb->func)(
+ pf[0]);
break;
case 0:
cb->func();