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