1
0
mirror of https://github.com/irssi/irssi.git synced 2024-12-04 14:46:39 -05:00

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
This commit is contained in:
Timo Sirainen 2002-01-28 15:20:57 +00:00 committed by cras
parent 08c23ce6d4
commit 747d0f19ca
5 changed files with 23 additions and 3 deletions

View File

@ -193,8 +193,6 @@ void chatnets_init(void)
void chatnets_deinit(void)
{
while (chatnets != NULL)
chatnet_destroy(chatnets->data);
module_uniq_destroy("CHATNET");
signal_remove("event connected", (SIGNAL_FUNC) sig_connected);

View File

@ -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);
}

View File

@ -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);

View File

@ -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);

View File

@ -452,7 +452,8 @@ int poptGetNextOpt(poptContext con) {
if (opt->arg && (opt->argInfo & POPT_ARG_MASK) != POPT_ARG_NONE
&& (opt->argInfo & POPT_ARG_MASK) != POPT_ARG_VAL)
con->finalArgv[con->finalArgvCount++] = g_strdup(con->os->nextArg);
con->finalArgv[con->finalArgvCount++] =
strcpy(malloc(strlen(con->os->nextArg)), con->os->nextArg);
}
if (dup) g_free(dup);