From ddea559d107f4c31e40fbc287b2edba8a91e8350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Mon, 1 Jul 1996 17:51:11 +0200 Subject: [PATCH] bugfix Rev: src/callback.c:1.4 Rev: src/callback.h:1.4 Rev: src/machine.h.in:1.9 Rev: src/main.c:1.8 --- src/callback.c | 13 ++++++------- src/callback.h | 4 ++-- src/machine.h.in | 3 +++ src/main.c | 2 +- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/callback.c b/src/callback.c index a760a8a843..80dac89550 100644 --- a/src/callback.c +++ b/src/callback.c @@ -33,7 +33,7 @@ static struct callback *get_free_callback() struct callback_block *tmp2; tmp2=ALLOC_STRUCT(callback_block); - for(e=0;e<sizeof(CALLBACK_CHUNK);e++) + for(e=0;e<(int)sizeof(CALLBACK_CHUNK);e++) { tmp2->callbacks[e].next=tmp; tmp=tmp2->callbacks+e; @@ -43,21 +43,20 @@ static struct callback *get_free_callback() return tmp; } -void call_callback(struct callback **ptr) +void call_callback(struct callback **ptr, void *arg) { struct callback *l; while(l=*ptr) { - if(l->call) l->call(l,l->arg); + if(l->call) l->call(l,l->arg, arg); if(!l->call) { *ptr=l->next; - free((char *)l); - }else{ - ptr=& l->next; l->next=free_callbacks; free_callbacks=l; + }else{ + ptr=& l->next; } } } @@ -92,7 +91,7 @@ void free_callback(struct callback **ptr) while(l=*ptr) { if(l->arg && l->free_func) - l->free_func(l, l->arg); + l->free_func(l, l->arg, 0); *ptr=l->next; l->next=free_callbacks; free_callbacks=l; diff --git a/src/callback.h b/src/callback.h index 6ba2257f70..0836801e72 100644 --- a/src/callback.h +++ b/src/callback.h @@ -10,12 +10,12 @@ struct callback; -typedef void (*callback_func)(struct callback *, void *); +typedef void (*callback_func)(struct callback *, void *,void *); /* Prototypes begin here */ struct callback; struct callback_block; -void call_callback(struct callback **ptr); +void call_callback(struct callback **ptr, void *arg); struct callback *add_to_callback(struct callback **ptr, callback_func call, void *arg, diff --git a/src/machine.h.in b/src/machine.h.in index f2fd129327..70b4987c1e 100644 --- a/src/machine.h.in +++ b/src/machine.h.in @@ -161,6 +161,9 @@ /* Define if you have getenv. */ #undef HAVE_GETENV +/* Define if you have gettimeofday. */ +#undef HAVE_GETTIMEOFDAY + /* Does your unix have a putenv function? */ #undef HAVE_PUTENV diff --git a/src/main.c b/src/main.c index a3e1768202..46c3a9608f 100644 --- a/src/main.c +++ b/src/main.c @@ -157,7 +157,7 @@ void main(int argc, char **argv, char **env) init_modules_efuns(); master(); - call_callback(& post_master_callbacks); + call_callback(& post_master_callbacks, 0); free_callback(& post_master_callbacks); init_modules_programs(); -- GitLab