From ab8c8cdae07d96cb18276a95b41ddb856c864958 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 2 Sep 2015 02:59:54 +0300 Subject: Remove variable mMessageHandlers from network code. --- src/net/eathena/network.cpp | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) (limited to 'src/net/eathena/network.cpp') diff --git a/src/net/eathena/network.cpp b/src/net/eathena/network.cpp index fdafd6baf..33c530989 100644 --- a/src/net/eathena/network.cpp +++ b/src/net/eathena/network.cpp @@ -93,30 +93,28 @@ static const unsigned int messagesSize = 0xFFFFU; Network *Network::mInstance = nullptr; Network::Network() : - Ea::Network(), - mMessageHandlers(new MessageHandler*[messagesSize]) + Ea::Network() { mInstance = this; - memset(&mMessageHandlers[0], 0, sizeof(MessageHandler*) * 0xffff); mPackets = new PacketInfo[messagesSize]; -#include "net/eathena/recvpackets.inc" } Network::~Network() { clearHandlers(); - delete2Arr(mMessageHandlers); mInstance = nullptr; } +void Network::registerHandlers() +{ +#include "net/eathena/recvpackets.inc" +} + void Network::registerHandler(MessageHandler *const handler) { if (!handler) return; - for (const uint16_t *i = handler->handledMessages; *i; ++i) - mMessageHandlers[*i] = handler; - handler->setNetwork(this); } @@ -125,22 +123,11 @@ void Network::unregisterHandler(MessageHandler *const handler) if (!handler) return; - for (const uint16_t *i = handler->handledMessages; *i; ++i) - mMessageHandlers[*i] = nullptr; - handler->setNetwork(nullptr); } void Network::clearHandlers() { - for (size_t f = 0; f < messagesSize; f ++) - { - if (mMessageHandlers[f]) - { - mMessageHandlers[f]->setNetwork(nullptr); - mMessageHandlers[f] = nullptr; - } - } } void Network::dispatchMessages() -- cgit v1.2.3-60-g2f50