Mercurial > pidgin.yaz
diff libpurple/protocols/jabber/jabber.c @ 25763:860ebaf275ae
Add more jabber plugin unloading functions to clean up more data structures
In reality, probably not terribly useful since the entire program is about to quit.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sat, 22 Nov 2008 19:44:05 +0000 |
parents | 1b64942c5fb2 |
children | b1b1b75a922e |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c Sat Nov 22 18:53:48 2008 +0000 +++ b/libpurple/protocols/jabber/jabber.c Sat Nov 22 19:44:05 2008 +0000 @@ -1518,6 +1518,16 @@ } } +static void jabber_features_destroy(void) +{ + while (jabber_features) { + JabberFeature *feature = jabber_features->data; + g_free(feature->namespace); + g_free(feature); + jabber_features = g_list_remove_link(jabber_features, jabber_features); + } +} + void jabber_add_identity(const gchar *category, const gchar *type, const gchar *lang, const gchar *name) { GList *identity; JabberIdentity *ident; @@ -1542,6 +1552,19 @@ jabber_identities = g_list_append(jabber_identities, ident); } +static void jabber_identities_destroy(void) +{ + while (jabber_identities) { + JabberIdentity *id = jabber_identities->data; + g_free(id->category); + g_free(id->type); + g_free(id->lang); + g_free(id->name); + g_free(id); + jabber_identities = g_list_remove_link(jabber_identities, jabber_identities); + } +} + const char *jabber_list_icon(PurpleAccount *a, PurpleBuddy *b) { return "jabber"; @@ -2635,3 +2658,10 @@ NULL, 1, purple_value_new(PURPLE_TYPE_STRING)); } + +void +jabber_uninit_plugin(void) +{ + jabber_features_destroy(); + jabber_identities_destroy(); +}