diff --git a/common/net/daybreak_connection.cpp b/common/net/daybreak_connection.cpp index 6af6576b1..0fefc9982 100644 --- a/common/net/daybreak_connection.cpp +++ b/common/net/daybreak_connection.cpp @@ -500,9 +500,10 @@ void EQ::Net::DaybreakConnection::ProcessQueue() break; } - auto &packet = iter->second; + auto packet = iter->second; stream->packet_queue.erase(iter); ProcessDecodedPacket(*packet); + delete packet; } } } @@ -512,8 +513,9 @@ void EQ::Net::DaybreakConnection::RemoveFromQueue(int stream, uint16_t seq) auto s = &m_streams[stream]; auto iter = s->packet_queue.find(seq); if (iter != s->packet_queue.end()) { - auto &packet = iter->second; + auto packet = iter->second; s->packet_queue.erase(iter); + delete packet; } } @@ -525,7 +527,7 @@ void EQ::Net::DaybreakConnection::AddToQueue(int stream, uint16_t seq, const Pac DynamicPacket *out = new DynamicPacket(); out->PutPacket(0, p); - s->packet_queue.emplace(std::make_pair(seq, std::unique_ptr(out))); + s->packet_queue.emplace(std::make_pair(seq, out)); } } diff --git a/common/net/daybreak_connection.h b/common/net/daybreak_connection.h index 2561f91a4..c2c714813 100644 --- a/common/net/daybreak_connection.h +++ b/common/net/daybreak_connection.h @@ -201,7 +201,7 @@ namespace EQ uint16_t sequence_in; uint16_t sequence_out; - std::map> packet_queue; + std::map packet_queue; DynamicPacket fragment_packet; uint32_t fragment_current_bytes;