mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 16:51:29 +00:00
[Memory Leak] Change raw pointer to unique_ptr to avoid potential leak in dbg stream (#4616)
Co-authored-by: KimLS <KimLS@peqtgc.com>
This commit is contained in:
parent
7a226ca4ef
commit
1f3ac2dc4f
@ -500,10 +500,9 @@ void EQ::Net::DaybreakConnection::ProcessQueue()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto packet = iter->second;
|
auto &packet = iter->second;
|
||||||
stream->packet_queue.erase(iter);
|
stream->packet_queue.erase(iter);
|
||||||
ProcessDecodedPacket(*packet);
|
ProcessDecodedPacket(*packet);
|
||||||
delete packet;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -513,9 +512,8 @@ void EQ::Net::DaybreakConnection::RemoveFromQueue(int stream, uint16_t seq)
|
|||||||
auto s = &m_streams[stream];
|
auto s = &m_streams[stream];
|
||||||
auto iter = s->packet_queue.find(seq);
|
auto iter = s->packet_queue.find(seq);
|
||||||
if (iter != s->packet_queue.end()) {
|
if (iter != s->packet_queue.end()) {
|
||||||
auto packet = iter->second;
|
auto &packet = iter->second;
|
||||||
s->packet_queue.erase(iter);
|
s->packet_queue.erase(iter);
|
||||||
delete packet;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -527,7 +525,7 @@ void EQ::Net::DaybreakConnection::AddToQueue(int stream, uint16_t seq, const Pac
|
|||||||
DynamicPacket *out = new DynamicPacket();
|
DynamicPacket *out = new DynamicPacket();
|
||||||
out->PutPacket(0, p);
|
out->PutPacket(0, p);
|
||||||
|
|
||||||
s->packet_queue.emplace(std::make_pair(seq, out));
|
s->packet_queue.emplace(std::make_pair(seq, std::unique_ptr<Packet>(out)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -201,7 +201,7 @@ namespace EQ
|
|||||||
|
|
||||||
uint16_t sequence_in;
|
uint16_t sequence_in;
|
||||||
uint16_t sequence_out;
|
uint16_t sequence_out;
|
||||||
std::map<uint16_t, Packet*> packet_queue;
|
std::map<uint16_t, std::unique_ptr<Packet>> packet_queue;
|
||||||
|
|
||||||
DynamicPacket fragment_packet;
|
DynamicPacket fragment_packet;
|
||||||
uint32_t fragment_current_bytes;
|
uint32_t fragment_current_bytes;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user