diff options
Diffstat (limited to 'src/channels.cpp')
-rw-r--r-- | src/channels.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/channels.cpp b/src/channels.cpp index c2a328b82..3d824f0d8 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -168,8 +168,7 @@ void Channel::DeleteUser(User *user) Log(LOG_DEBUG) << "Channel::DeleteUser() tried to delete non-existent channel " << this->name << " from " << user->nick << "'s channel list"; delete cu; - if (std::find(deleting.begin(), deleting.end(), this) == deleting.end()) - deleting.push_back(this); + QueueForDeletion(); } ChanUserContainer *Channel::FindUser(User *u) const @@ -938,6 +937,12 @@ Channel *Channel::FindOrCreate(const Anope::string &name, bool &created, time_t return chan; } +void Channel::QueueForDeletion() +{ + if (std::find(deleting.begin(), deleting.end(), this) == deleting.end()) + deleting.push_back(this); +} + void Channel::DeleteChannels() { for (unsigned int i = 0; i < deleting.size(); ++i) |