From 5338777b91ca98bfcd4aea3620a69071d42701f0 Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Fri, 1 Jan 2016 18:24:42 -0500 Subject: [PATCH] Fixed minor memory leak/bug. Added pop() ot ArrayList. --- Jupiter/ArrayList.h | 12 ++++++++++++ Jupiter/IRC_Client.cpp | 19 +++++++++++-------- Release/Jupiter.lib | Bin 302612 -> 304222 bytes 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/Jupiter/ArrayList.h b/Jupiter/ArrayList.h index a76c667..99d1302 100644 --- a/Jupiter/ArrayList.h +++ b/Jupiter/ArrayList.h @@ -52,6 +52,13 @@ namespace Jupiter */ T *remove(size_t index); + /** + * @brief Removes the last element in the list, and returns the data removed. + * + * @return Data removed. + */ + T *pop(); + /** * @brief Adds data to the list at a specified index. * @@ -182,6 +189,11 @@ template T *Jupiter::ArrayList::remove(size_t index) return r; } +template T *Jupiter::ArrayList::pop() +{ + return Jupiter::ArrayList::data[--Jupiter::List::length]; +} + template void Jupiter::ArrayList::add(T *ndata, size_t index) { if (Jupiter::List::length == Jupiter::ArrayList::dataSize) Jupiter::ArrayList::expandArray(); diff --git a/Jupiter/IRC_Client.cpp b/Jupiter/IRC_Client.cpp index 6282bf0..bbec229 100644 --- a/Jupiter/IRC_Client.cpp +++ b/Jupiter/IRC_Client.cpp @@ -115,8 +115,15 @@ struct Jupiter::IRC::Client::Channel::User::Data { Jupiter::IRC::Client::User *user; Jupiter::StringS prefixes; + + ~Data(); }; +Jupiter::IRC::Client::Channel::User::Data::~Data() +{ + --Jupiter::IRC::Client::Channel::User::Data::user->data_->channelCount; +} + struct Jupiter::IRC::Client::Channel::Data { Jupiter::StringS channel; @@ -1054,7 +1061,7 @@ int Jupiter::IRC::Client::primaryHandler() this->OnPart(chan, nick, reason); for (i = Jupiter::plugins->size() - 1; i >= 0; i--) Jupiter::plugins->get(i)->OnPart(this, chan, nick, reason); if (nick.equalsi(Jupiter::IRC::Client::data_->nickname)) Jupiter::IRC::Client::data_->delChannel(chan); - if (user->getChannelCount() == 0) Jupiter::IRC::Client::data_->users.remove(userIndex); + if (user->getChannelCount() == 0) delete Jupiter::IRC::Client::data_->users.remove(userIndex); } } } @@ -1090,7 +1097,7 @@ int Jupiter::IRC::Client::primaryHandler() Jupiter::IRC::Client::data_->delChannel(chan); if (Jupiter::IRC::Client::data_->joinOnKick) Jupiter::IRC::Client::joinChannel(chan); } - if (user->getChannelCount() == 0) Jupiter::IRC::Client::data_->users.remove(userIndex); + if (user->getChannelCount() == 0) delete Jupiter::IRC::Client::data_->users.remove(userIndex); } } } @@ -1110,7 +1117,7 @@ int Jupiter::IRC::Client::primaryHandler() Jupiter::IRC::Client::data_->channels.get(i)->delUser(nick); this->OnQuit(nick, message); for (i = 0; i < Jupiter::plugins->size(); i++) Jupiter::plugins->get(i)->OnQuit(this, nick, message); - if (user->getChannelCount() == 0) Jupiter::IRC::Client::data_->users.remove(userIndex); + if (user->getChannelCount() == 0) delete Jupiter::IRC::Client::data_->users.remove(userIndex); } } else if (w2.equalsi("INVITE")) @@ -1617,11 +1624,7 @@ void Jupiter::IRC::Client::Channel::delUser(const Jupiter::ReadableString &nickn void Jupiter::IRC::Client::Channel::delUser(size_t index) { if (index < Jupiter::IRC::Client::Channel::data_->users.size()) - { - Jupiter::IRC::Client::Channel::User *user = Jupiter::IRC::Client::Channel::data_->users.remove(index); - user->data_->user->data_->channelCount--; - delete user; - } + delete Jupiter::IRC::Client::Channel::data_->users.remove(index); } void Jupiter::IRC::Client::Channel::addUserPrefix(size_t index, char prefix) diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index 0b4e0253c754bec99c88c45ac554592a88b6a6d0..dd0d014ef09790db497ea7b94309e7461d224fdd 100644 GIT binary patch delta 38244 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 delta 38133 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 J+-JxT`afS5kd*)c