mirror of
https://github.com/EQEmu/Server.git
synced 2026-03-07 23:52:24 +00:00
[Fix] Update a few Bazaar RoF2 routines for memory leaks (#4592)
Memory leak repairs
This commit is contained in:
parent
c82f1b9afc
commit
c2ebc2540a
@ -433,7 +433,9 @@ namespace RoF2
|
|||||||
VARSTRUCT_ENCODE_TYPE(uint32, eq, i.item_icon);
|
VARSTRUCT_ENCODE_TYPE(uint32, eq, i.item_icon);
|
||||||
VARSTRUCT_SKIP_TYPE(uint32, eq);
|
VARSTRUCT_SKIP_TYPE(uint32, eq);
|
||||||
}
|
}
|
||||||
|
|
||||||
dest->QueuePacket(outapp.get());
|
dest->QueuePacket(outapp.get());
|
||||||
|
safe_delete(in);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
@ -468,8 +470,8 @@ namespace RoF2
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto p_size = 41 * results.size() + name_size + 14;
|
auto p_size = 41 * results.size() + name_size + 14;
|
||||||
auto buffer = std::make_unique<char[]>(p_size);
|
auto buffer = new char[p_size];
|
||||||
auto bufptr = buffer.get();
|
auto bufptr = buffer;
|
||||||
|
|
||||||
VARSTRUCT_ENCODE_TYPE(uint32, bufptr, 0);
|
VARSTRUCT_ENCODE_TYPE(uint32, bufptr, 0);
|
||||||
VARSTRUCT_ENCODE_TYPE(uint16, bufptr, results[0].trader_zone_id);
|
VARSTRUCT_ENCODE_TYPE(uint16, bufptr, results[0].trader_zone_id);
|
||||||
@ -489,8 +491,9 @@ namespace RoF2
|
|||||||
|
|
||||||
safe_delete_array(in->pBuffer);
|
safe_delete_array(in->pBuffer);
|
||||||
in->size = p_size;
|
in->size = p_size;
|
||||||
in->pBuffer = (uchar *) buffer.get();
|
in->pBuffer = (uchar*)buffer;
|
||||||
dest->QueuePacket(in);
|
dest->QueuePacket(in);
|
||||||
|
safe_delete(in);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -500,9 +503,9 @@ namespace RoF2
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WelcomeMessage: {
|
case WelcomeMessage: {
|
||||||
auto buffer = std::make_unique<char[]>(sizeof(structs::BazaarWelcome_Struct));
|
auto buffer = new char[sizeof(structs::BazaarWelcome_Struct)];
|
||||||
auto emu = (BazaarWelcome_Struct *) in->pBuffer;
|
auto emu = (BazaarWelcome_Struct *) in->pBuffer;
|
||||||
auto eq = (structs::BazaarWelcome_Struct *) buffer.get();
|
auto eq = (structs::BazaarWelcome_Struct *) buffer;
|
||||||
|
|
||||||
eq->action = structs::RoF2BazaarTraderBuyerActions::WelcomeMessage;
|
eq->action = structs::RoF2BazaarTraderBuyerActions::WelcomeMessage;
|
||||||
eq->num_of_traders = emu->traders;
|
eq->num_of_traders = emu->traders;
|
||||||
@ -511,10 +514,11 @@ namespace RoF2
|
|||||||
safe_delete_array(in->pBuffer);
|
safe_delete_array(in->pBuffer);
|
||||||
in->SetOpcode(OP_TraderShop);
|
in->SetOpcode(OP_TraderShop);
|
||||||
in->size = sizeof(structs::BazaarWelcome_Struct);
|
in->size = sizeof(structs::BazaarWelcome_Struct);
|
||||||
in->pBuffer = (uchar *) buffer.get();
|
in->pBuffer = (uchar *)buffer;
|
||||||
|
|
||||||
LogTrading("(RoF2) WelcomeMessage action <green>[{}]", action);
|
LogTrading("(RoF2) WelcomeMessage action <green>[{}]", action);
|
||||||
dest->QueuePacket(in);
|
dest->QueuePacket(in);
|
||||||
|
safe_delete(in);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -892,7 +896,9 @@ namespace RoF2
|
|||||||
VARSTRUCT_ENCODE_TYPE(uint16, eq, b.buyer_zone_instance_id);
|
VARSTRUCT_ENCODE_TYPE(uint16, eq, b.buyer_zone_instance_id);
|
||||||
VARSTRUCT_ENCODE_STRING(eq, b.buyer_name.c_str());
|
VARSTRUCT_ENCODE_STRING(eq, b.buyer_name.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
dest->QueuePacket(outapp.get());
|
dest->QueuePacket(outapp.get());
|
||||||
|
safe_delete(inapp);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Barter_RemoveFromMerchantWindow: {
|
case Barter_RemoveFromMerchantWindow: {
|
||||||
@ -963,6 +969,7 @@ namespace RoF2
|
|||||||
VARSTRUCT_ENCODE_TYPE(uint32, eq, blsi.seller_quantity);
|
VARSTRUCT_ENCODE_TYPE(uint32, eq, blsi.seller_quantity);
|
||||||
|
|
||||||
dest->QueuePacket(outapp.get());
|
dest->QueuePacket(outapp.get());
|
||||||
|
safe_delete(inapp);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user