Mercurial > pidgin
diff libpurple/protocols/msn/transaction.c @ 28353:6a23d7f84143
Allow setting a destroy-function for the data. Fixes a leak.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Fri, 09 Oct 2009 18:01:51 +0000 |
parents | 273efe387134 |
children | 54c8aeecab4c |
line wrap: on
line diff
--- a/libpurple/protocols/msn/transaction.c Fri Oct 09 17:33:16 2009 +0000 +++ b/libpurple/protocols/msn/transaction.c Fri Oct 09 18:01:51 2009 +0000 @@ -59,6 +59,9 @@ g_free(trans->params); g_free(trans->payload); + if (trans->data_free) + trans->data_free(trans->data); + #if 0 if (trans->pendent_cmd != NULL) msn_message_unref(trans->pendent_msg); @@ -165,6 +168,12 @@ trans->data = data; } +void msn_transaction_set_data_free(MsnTransaction *trans, GDestroyNotify fn) +{ + g_return_if_fail(trans != NULL); + trans->data_free = fn; +} + void msn_transaction_add_cb(MsnTransaction *trans, char *answer, MsnTransCb cb)