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:
parent
08c23ce6d4
commit
747d0f19ca
@ -193,8 +193,6 @@ void chatnets_init(void)
|
|||||||
|
|
||||||
void chatnets_deinit(void)
|
void chatnets_deinit(void)
|
||||||
{
|
{
|
||||||
while (chatnets != NULL)
|
|
||||||
chatnet_destroy(chatnets->data);
|
|
||||||
module_uniq_destroy("CHATNET");
|
module_uniq_destroy("CHATNET");
|
||||||
|
|
||||||
signal_remove("event connected", (SIGNAL_FUNC) sig_connected);
|
signal_remove("event connected", (SIGNAL_FUNC) sig_connected);
|
||||||
|
@ -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);
|
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)
|
void irc_chatnets_init(void)
|
||||||
{
|
{
|
||||||
signal_add("chatnet read", (SIGNAL_FUNC) sig_chatnet_read);
|
signal_add("chatnet read", (SIGNAL_FUNC) sig_chatnet_read);
|
||||||
signal_add("chatnet saved", (SIGNAL_FUNC) sig_chatnet_saved);
|
signal_add("chatnet saved", (SIGNAL_FUNC) sig_chatnet_saved);
|
||||||
|
signal_add("chatnet destroyed", (SIGNAL_FUNC) sig_chatnet_destroyed);
|
||||||
}
|
}
|
||||||
|
|
||||||
void irc_chatnets_deinit(void)
|
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 read", (SIGNAL_FUNC) sig_chatnet_read);
|
||||||
signal_remove("chatnet saved", (SIGNAL_FUNC) sig_chatnet_saved);
|
signal_remove("chatnet saved", (SIGNAL_FUNC) sig_chatnet_saved);
|
||||||
|
signal_remove("chatnet destroyed", (SIGNAL_FUNC) sig_chatnet_destroyed);
|
||||||
}
|
}
|
||||||
|
@ -277,6 +277,7 @@ static void sig_disconnected(IRC_SERVER_REC *server)
|
|||||||
g_slist_free(server->cmdqueue);
|
g_slist_free(server->cmdqueue);
|
||||||
server->cmdqueue = NULL;
|
server->cmdqueue = NULL;
|
||||||
|
|
||||||
|
g_free_and_null(server->wanted_usermode);
|
||||||
g_free_and_null(server->real_address);
|
g_free_and_null(server->real_address);
|
||||||
g_free_and_null(server->usermode);
|
g_free_and_null(server->usermode);
|
||||||
g_free_and_null(server->userhost);
|
g_free_and_null(server->userhost);
|
||||||
|
@ -113,6 +113,8 @@ void server_redirect_destroy(REDIRECT_REC *rec)
|
|||||||
g_free_not_null(rec->arg);
|
g_free_not_null(rec->arg);
|
||||||
g_free_not_null(rec->failure_signal);
|
g_free_not_null(rec->failure_signal);
|
||||||
g_free_not_null(rec->default_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_foreach(rec->signals, (GFunc) g_free, NULL);
|
||||||
g_slist_free(rec->signals);
|
g_slist_free(rec->signals);
|
||||||
g_free(rec);
|
g_free(rec);
|
||||||
|
@ -452,7 +452,8 @@ int poptGetNextOpt(poptContext con) {
|
|||||||
|
|
||||||
if (opt->arg && (opt->argInfo & POPT_ARG_MASK) != POPT_ARG_NONE
|
if (opt->arg && (opt->argInfo & POPT_ARG_MASK) != POPT_ARG_NONE
|
||||||
&& (opt->argInfo & POPT_ARG_MASK) != POPT_ARG_VAL)
|
&& (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);
|
if (dup) g_free(dup);
|
||||||
|
Loading…
Reference in New Issue
Block a user