fix FillSMGameOver memory leak

This commit is contained in:
aozhiwei 2024-08-14 19:32:14 +08:00
parent 2a79e72612
commit 6fb944a244

View File

@ -1120,18 +1120,18 @@ void Human::FillSMGameOver(cs::SMGameOver& msg)
}
#endif
{
auto p = new cs::MFSettlementNew();
GetTeam()->FillMFSettlementNew(p);
auto p = std::make_shared<cs::MFSettlementNew>();
GetTeam()->FillMFSettlementNew(p.get());
*msg.mutable_settlement_new() = *p;
*msg.mutable_common_settlement()->add_team_list() = *p;
}
if (room->IsMobaModeRoom()) {
auto p = new cs::MFSettlementNew();
auto p = std::make_shared<cs::MFSettlementNew>();
if (room->GetMobaTeamA() == GetTeam()) {
room->GetMobaTeamB()->FillMFSettlementNew(p);
room->GetMobaTeamB()->FillMFSettlementNew(p.get());
*msg.mutable_common_settlement()->add_team_list() = *p;
} else {
room->GetMobaTeamB()->FillMFSettlementNew(p);
room->GetMobaTeamB()->FillMFSettlementNew(p.get());
*msg.mutable_common_settlement()->add_team_list() = *p;
}
}