pike.git/
src/
callback.c
Branch:
Tag:
Non-build tags
All tags
No tags
1996-07-01
1996-07-01 15:51:11 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>
ddea559d107f4c31e40fbc287b2edba8a91e8350 (
14
lines) (+
7
/-
7
)
[
Show
|
Annotate
]
Branch:
branches/E-12
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
33:
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:
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:
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; } }