From ea15670bc4ddf50268be994949e8f6652b153d0d Mon Sep 17 00:00:00 2001 From: pk910 Date: Wed, 4 Jan 2012 17:06:17 +0100 Subject: [PATCH] fixed #65bb4d5 --- src/UserNode.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/UserNode.c b/src/UserNode.c index 887b9c9..df4edeb 100644 --- a/src/UserNode.c +++ b/src/UserNode.c @@ -351,6 +351,10 @@ void delUser(struct UserNode* user, int freeUser) { } else last_user = cuser; } + if(freeUser && (user->flags & USERFLAG_IS_ON_WHO_QUEUE)) { + user->flags |= USERFLAG_FREE_AFTER_WHO; + freeUser = 0; + } if(user->channel) { struct ChanUser *chanUser, *next; for(chanUser = user->channel; chanUser; chanUser = next) { @@ -358,12 +362,9 @@ void delUser(struct UserNode* user, int freeUser) { removeChanUserFromLists(chanUser, 1, 0, freeUser); } } - if(freeUser) { - if(user->flags & USERFLAG_IS_ON_WHO_QUEUE) - user->flags |= USERFLAG_FREE_AFTER_WHO; - else - free(user); - } else + if(freeUser) + free(user); + else user->next = NULL; } -- 2.20.1