diff options
author | Timo Sirainen <cras@irssi.org> | 2002-01-28 15:20:57 +0000 |
---|---|---|
committer | cras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2002-01-28 15:20:57 +0000 |
commit | 747d0f19ca54053601a61f00f331a174daa3afb9 (patch) | |
tree | c1fef5a3e7b391ca8c697475790b35ab1ee6db51 /src/irc | |
parent | 08c23ce6d4c21f7cee9be2248d0fec15c153a23a (diff) | |
download | irssi-747d0f19ca54053601a61f00f331a174daa3afb9.zip |
Fixed a few minor memleaks. Don't use g_strdup() in lib-popt because it may
be freed with a real free() call instead of g_free().
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2352 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/irc')
-rw-r--r-- | src/irc/core/irc-chatnets.c | 18 | ||||
-rw-r--r-- | src/irc/core/irc-servers.c | 1 | ||||
-rw-r--r-- | src/irc/core/servers-redirect.c | 2 |
3 files changed, 21 insertions, 0 deletions
diff --git a/src/irc/core/irc-chatnets.c b/src/irc/core/irc-chatnets.c index 5d375869..1e03110a 100644 --- a/src/irc/core/irc-chatnets.c +++ b/src/irc/core/irc-chatnets.c @@ -75,14 +75,32 @@ static void sig_chatnet_saved(IRC_CHATNET_REC *rec, CONFIG_NODE *node) iconfig_node_set_int(node, "max_whois", rec->max_whois); } +static void sig_chatnet_destroyed(IRC_CHATNET_REC *rec) +{ + if (IS_IRC_CHATNET(rec)) + g_free(rec->usermode); +} + + void irc_chatnets_init(void) { signal_add("chatnet read", (SIGNAL_FUNC) sig_chatnet_read); signal_add("chatnet saved", (SIGNAL_FUNC) sig_chatnet_saved); + signal_add("chatnet destroyed", (SIGNAL_FUNC) sig_chatnet_destroyed); } void irc_chatnets_deinit(void) { + GSList *tmp, *next; + + for (tmp = chatnets; tmp != NULL; tmp = next) { + CHATNET_REC *rec = tmp->data; + + if (IS_IRC_CHATNET(rec)) + chatnet_destroy(rec); + } + signal_remove("chatnet read", (SIGNAL_FUNC) sig_chatnet_read); signal_remove("chatnet saved", (SIGNAL_FUNC) sig_chatnet_saved); + signal_remove("chatnet destroyed", (SIGNAL_FUNC) sig_chatnet_destroyed); } diff --git a/src/irc/core/irc-servers.c b/src/irc/core/irc-servers.c index a8ebb607..91935fb5 100644 --- a/src/irc/core/irc-servers.c +++ b/src/irc/core/irc-servers.c @@ -277,6 +277,7 @@ static void sig_disconnected(IRC_SERVER_REC *server) g_slist_free(server->cmdqueue); server->cmdqueue = NULL; + g_free_and_null(server->wanted_usermode); g_free_and_null(server->real_address); g_free_and_null(server->usermode); g_free_and_null(server->userhost); diff --git a/src/irc/core/servers-redirect.c b/src/irc/core/servers-redirect.c index 1a1d159d..802bd0aa 100644 --- a/src/irc/core/servers-redirect.c +++ b/src/irc/core/servers-redirect.c @@ -113,6 +113,8 @@ void server_redirect_destroy(REDIRECT_REC *rec) g_free_not_null(rec->arg); g_free_not_null(rec->failure_signal); g_free_not_null(rec->default_signal); + g_free_not_null(rec->first_signal); + g_free_not_null(rec->last_signal); g_slist_foreach(rec->signals, (GFunc) g_free, NULL); g_slist_free(rec->signals); g_free(rec); |