From c451c94c6838223e7476104b3c52924eff9b9924 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sun, 2 Jul 2000 16:24:28 +0000 Subject: [PATCH] Minor memleak fixed. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@415 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/irc/core/massjoin.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/irc/core/massjoin.c b/src/irc/core/massjoin.c index 51831a1a..649e8c37 100644 --- a/src/irc/core/massjoin.c +++ b/src/irc/core/massjoin.c @@ -66,19 +66,22 @@ static void event_join(const char *data, IRC_SERVER_REC *server, const char *nic chanrec->last_massjoins = 0; } - /* Check if user is already in some other channel, - get the realname from there */ - nicks = nicklist_get_same(server, nick); - for (tmp = nicks; tmp != NULL; tmp = tmp->next->next) { - NICK_REC *rec = tmp->next->data; + if (nickrec->realname == NULL) { + /* Check if user is already in some other channel, + get the realname and other stuff from there */ + nicks = nicklist_get_same(server, nick); + for (tmp = nicks; tmp != NULL; tmp = tmp->next->next) { + NICK_REC *rec = tmp->next->data; - if (rec->realname != NULL) { - nickrec->last_check = rec->last_check; - nickrec->realname = g_strdup(rec->realname); - nickrec->gone = rec->gone; + if (rec->realname != NULL) { + nickrec->last_check = rec->last_check; + nickrec->realname = g_strdup(rec->realname); + nickrec->gone = rec->gone; + break; + } } + g_slist_free(nicks); } - g_slist_free(nicks); chanrec->massjoins++; }