最近线上出现一次崩溃事故,core在了dynamic_cast类型转化上面,之前一直跑的好好的,第一反应是存在野指针了。
void RoomHandler::KickAllPlayersInRoom(Room* room)
{
vector<IPlayer*> players = room->GetPlayers();
for (size_t i=0; i<players.size(); i++) {
ProcessPlayerQuit(dynamic_cast<Player*>(players[i]), room);
}
}
经过仔细排查并没有发现释放完后,没有在容器中删除的情况。
其中的GetPlayers大概是这种结构:
std::vector<IPlayer*> Room::GetPlayers()
{
std::