aboutsummaryrefslogtreecommitdiffstats
path: root/query.h
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2010-07-11 11:30:27 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2010-07-11 11:30:27 +0100
commit1e52e1ff518987092cfe94bc5c9c4479ed535019 (patch)
tree59a0f7c6725f37703797b8825058356ec6bf1f27 /query.h
parente92c4f4f63ca0ba9ac6f959f7ff894ad2fc72a04 (diff)
When cleaning up queries, q->data is free()d. Even if it turns out to be
the "struct irc" containing all data belonging to a session. Sanitise memory management a little bit here. (There are some memory leaks in here too that need to be fixed at some point.)
Diffstat (limited to 'query.h')
-rw-r--r--query.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/query.h b/query.h
index e0ca32ec..f0419573 100644
--- a/query.h
+++ b/query.h
@@ -32,13 +32,14 @@ typedef struct query
{
struct im_connection *ic;
char *question;
- query_callback yes, no;
+ query_callback yes, no, free;
void *data;
struct query *next;
} query_t;
query_t *query_add( irc_t *irc, struct im_connection *ic, char *question,
- query_callback yes, query_callback no, void *data );
+ query_callback yes, query_callback no, query_callback free,
+ void *data );
void query_del( irc_t *irc, query_t *q );
void query_del_by_conn( irc_t *irc, struct im_connection *ic );
void query_answer( irc_t *irc, query_t *q, int ans );