Skip to content

Commit 083c8c7

Browse files
committedMar 13, 2015
Replace NetworkPacket pointers to references
1 parent 74d34da commit 083c8c7

File tree

8 files changed

+257
-296
lines changed

8 files changed

+257
-296
lines changed
 

‎src/client.cpp

+74-79
Original file line numberDiff line numberDiff line change
@@ -407,15 +407,15 @@ void Client::step(float dtime)
407407
snprintf(pName, PLAYERNAME_SIZE, "%s", myplayer->getName());
408408
snprintf(pPassword, PASSWORD_SIZE, "%s", m_password.c_str());
409409

410-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_INIT_LEGACY,
410+
NetworkPacket pkt(TOSERVER_INIT_LEGACY,
411411
1 + PLAYERNAME_SIZE + PASSWORD_SIZE + 2 + 2);
412412

413-
*pkt << (u8) SER_FMT_VER_HIGHEST_READ;
414-
pkt->putRawString(pName,PLAYERNAME_SIZE);
415-
pkt->putRawString(pPassword, PASSWORD_SIZE);
416-
*pkt << (u16) CLIENT_PROTOCOL_VERSION_MIN << (u16) CLIENT_PROTOCOL_VERSION_MAX;
413+
pkt << (u8) SER_FMT_VER_HIGHEST_READ;
414+
pkt.putRawString(pName,PLAYERNAME_SIZE);
415+
pkt.putRawString(pPassword, PASSWORD_SIZE);
416+
pkt << (u16) CLIENT_PROTOCOL_VERSION_MIN << (u16) CLIENT_PROTOCOL_VERSION_MAX;
417417

418-
Send(pkt);
418+
Send(&pkt);
419419
}
420420

421421
// Not connected, return
@@ -455,19 +455,19 @@ void Client::step(float dtime)
455455
[3+6] v3s16 pos_1
456456
...
457457
*/
458-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_DELETEDBLOCKS, 1 + sizeof(v3s16) * sendlist.size());
458+
NetworkPacket pkt(TOSERVER_DELETEDBLOCKS, 1 + sizeof(v3s16) * sendlist.size());
459459

460-
*pkt << (u8) sendlist.size();
460+
pkt << (u8) sendlist.size();
461461

462462
u32 k = 0;
463463
for(std::vector<v3s16>::iterator
464464
j = sendlist.begin();
465465
j != sendlist.end(); ++j) {
466-
*pkt << *j;
466+
pkt << *j;
467467
k++;
468468
}
469469

470-
Send(pkt);
470+
Send(&pkt);
471471

472472
if(i == deleted_blocks.end())
473473
break;
@@ -575,9 +575,9 @@ void Client::step(float dtime)
575575
[0] u8 count
576576
[1] v3s16 pos_0
577577
*/
578-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_GOTBLOCKS, 1 + 6);
579-
*pkt << (u8) 1 << r.p;
580-
Send(pkt);
578+
NetworkPacket pkt(TOSERVER_GOTBLOCKS, 1 + 6);
579+
pkt << (u8) 1 << r.p;
580+
Send(&pkt);
581581
}
582582
}
583583

@@ -666,15 +666,15 @@ void Client::step(float dtime)
666666
size_t server_ids = removed_server_ids.size();
667667
assert(server_ids <= 0xFFFF);
668668

669-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_REMOVED_SOUNDS, 2 + server_ids * 4);
669+
NetworkPacket pkt(TOSERVER_REMOVED_SOUNDS, 2 + server_ids * 4);
670670

671-
*pkt << (u16) (server_ids & 0xFFFF);
671+
pkt << (u16) (server_ids & 0xFFFF);
672672

673673
for(std::set<s32>::iterator i = removed_server_ids.begin();
674674
i != removed_server_ids.end(); i++)
675-
*pkt << *i;
675+
pkt << *i;
676676

677-
Send(pkt);
677+
Send(&pkt);
678678
}
679679
}
680680

@@ -794,27 +794,27 @@ void Client::request_media(const std::vector<std::string> &file_requests)
794794
FATAL_ERROR_IF(file_requests_size > 0xFFFF, "Unsupported number of file requests");
795795

796796
// Packet dynamicly resized
797-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_REQUEST_MEDIA, 2 + 0);
797+
NetworkPacket pkt(TOSERVER_REQUEST_MEDIA, 2 + 0);
798798

799-
*pkt << (u16) (file_requests_size & 0xFFFF);
799+
pkt << (u16) (file_requests_size & 0xFFFF);
800800

801801
for(std::vector<std::string>::const_iterator i = file_requests.begin();
802802
i != file_requests.end(); ++i) {
803-
*pkt << (*i);
803+
pkt << (*i);
804804
}
805805

806-
Send(pkt);
806+
Send(&pkt);
807807

808-
infostream<<"Client: Sending media request list to server ("
809-
<<file_requests.size()<<" files. packet size)"<<std::endl;
808+
infostream << "Client: Sending media request list to server ("
809+
<< file_requests.size() << " files. packet size)" << std::endl;
810810
}
811811

812812
void Client::received_media()
813813
{
814-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_RECEIVED_MEDIA, 0);
815-
Send(pkt);
816-
infostream<<"Client: Notifying server that we received all media"
817-
<<std::endl;
814+
NetworkPacket pkt(TOSERVER_RECEIVED_MEDIA, 0);
815+
Send(&pkt);
816+
infostream << "Client: Notifying server that we received all media"
817+
<< std::endl;
818818
}
819819

820820
void Client::initLocalMapSaving(const Address &address,
@@ -891,9 +891,9 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
891891
return;
892892
}
893893

894-
NetworkPacket* pkt = new NetworkPacket(data, datasize, sender_peer_id);
894+
NetworkPacket pkt(data, datasize, sender_peer_id);
895895

896-
ToClientCommand command = (ToClientCommand) pkt->getCommand();
896+
ToClientCommand command = (ToClientCommand) pkt.getCommand();
897897

898898
//infostream<<"Client: received command="<<command<<std::endl;
899899
m_packetcounter.add((u16)command);
@@ -906,7 +906,6 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
906906
infostream << "Client::ProcessData(): Discarding data not "
907907
"coming from server: peer_id=" << sender_peer_id
908908
<< std::endl;
909-
delete pkt;
910909
return;
911910
}
912911

@@ -922,25 +921,22 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
922921
* as a byte mask
923922
*/
924923
if(toClientCommandTable[command].state == TOCLIENT_STATE_NOT_CONNECTED) {
925-
handleCommand(pkt);
926-
delete pkt;
924+
handleCommand(&pkt);
927925
return;
928926
}
929927

930928
if(m_server_ser_ver == SER_FMT_VER_INVALID) {
931929
infostream << "Client: Server serialization"
932930
" format invalid or not initialized."
933931
" Skipping incoming command=" << command << std::endl;
934-
delete pkt;
935932
return;
936933
}
937934

938935
/*
939936
Handle runtime commands
940937
*/
941938

942-
handleCommand(pkt);
943-
delete pkt;
939+
handleCommand(&pkt);
944940
}
945941

946942
void Client::Send(NetworkPacket* pkt)
@@ -949,7 +945,6 @@ void Client::Send(NetworkPacket* pkt)
949945
serverCommandFactoryTable[pkt->getCommand()].channel,
950946
pkt,
951947
serverCommandFactoryTable[pkt->getCommand()].reliable);
952-
delete pkt;
953948
}
954949

955950
void Client::interact(u8 action, const PointedThing& pointed)
@@ -975,17 +970,17 @@ void Client::interact(u8 action, const PointedThing& pointed)
975970
4: use item
976971
*/
977972

978-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_INTERACT, 1 + 2 + 0);
973+
NetworkPacket pkt(TOSERVER_INTERACT, 1 + 2 + 0);
979974

980-
*pkt << action;
981-
*pkt << (u16)getPlayerItem();
975+
pkt << action;
976+
pkt << (u16)getPlayerItem();
982977

983978
std::ostringstream tmp_os(std::ios::binary);
984979
pointed.serialize(tmp_os);
985980

986-
pkt->putLongString(tmp_os.str());
981+
pkt.putLongString(tmp_os.str());
987982

988-
Send(pkt);
983+
Send(&pkt);
989984
}
990985

991986
void Client::sendNodemetaFields(v3s16 p, const std::string &formname,
@@ -995,19 +990,19 @@ void Client::sendNodemetaFields(v3s16 p, const std::string &formname,
995990

996991
FATAL_ERROR_IF(fields_size > 0xFFFF, "Unsupported number of nodemeta fields");
997992

998-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_NODEMETA_FIELDS, 0);
993+
NetworkPacket pkt(TOSERVER_NODEMETA_FIELDS, 0);
999994

1000-
*pkt << p << formname << (u16) (fields_size & 0xFFFF);
995+
pkt << p << formname << (u16) (fields_size & 0xFFFF);
1001996

1002997
for(std::map<std::string, std::string>::const_iterator
1003998
i = fields.begin(); i != fields.end(); i++) {
1004999
const std::string &name = i->first;
10051000
const std::string &value = i->second;
1006-
*pkt << name;
1007-
pkt->putLongString(value);
1001+
pkt << name;
1002+
pkt.putLongString(value);
10081003
}
10091004

1010-
Send(pkt);
1005+
Send(&pkt);
10111006
}
10121007

10131008
void Client::sendInventoryFields(const std::string &formname,
@@ -1016,18 +1011,18 @@ void Client::sendInventoryFields(const std::string &formname,
10161011
size_t fields_size = fields.size();
10171012
FATAL_ERROR_IF(fields_size > 0xFFFF, "Unsupported number of inventory fields");
10181013

1019-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_INVENTORY_FIELDS, 0);
1020-
*pkt << formname << (u16) (fields_size & 0xFFFF);
1014+
NetworkPacket pkt(TOSERVER_INVENTORY_FIELDS, 0);
1015+
pkt << formname << (u16) (fields_size & 0xFFFF);
10211016

10221017
for(std::map<std::string, std::string>::const_iterator
10231018
i = fields.begin(); i != fields.end(); i++) {
10241019
const std::string &name = i->first;
10251020
const std::string &value = i->second;
1026-
*pkt << name;
1027-
pkt->putLongString(value);
1021+
pkt << name;
1022+
pkt.putLongString(value);
10281023
}
10291024

1030-
Send(pkt);
1025+
Send(&pkt);
10311026
}
10321027

10331028
void Client::sendInventoryAction(InventoryAction *a)
@@ -1039,19 +1034,19 @@ void Client::sendInventoryAction(InventoryAction *a)
10391034
// Make data buffer
10401035
std::string s = os.str();
10411036

1042-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_INVENTORY_ACTION, s.size());
1043-
pkt->putRawString(s.c_str(),s.size());
1037+
NetworkPacket pkt(TOSERVER_INVENTORY_ACTION, s.size());
1038+
pkt.putRawString(s.c_str(),s.size());
10441039

1045-
Send(pkt);
1040+
Send(&pkt);
10461041
}
10471042

10481043
void Client::sendChatMessage(const std::wstring &message)
10491044
{
1050-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_CHAT_MESSAGE, 2 + message.size() * sizeof(u16));
1045+
NetworkPacket pkt(TOSERVER_CHAT_MESSAGE, 2 + message.size() * sizeof(u16));
10511046

1052-
*pkt << message;
1047+
pkt << message;
10531048

1054-
Send(pkt);
1049+
Send(&pkt);
10551050
}
10561051

10571052
void Client::sendChangePassword(const std::wstring &oldpassword,
@@ -1065,58 +1060,58 @@ void Client::sendChangePassword(const std::wstring &oldpassword,
10651060
std::string oldpwd = translatePassword(playername, oldpassword);
10661061
std::string newpwd = translatePassword(playername, newpassword);
10671062

1068-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_PASSWORD_LEGACY, 2 * PASSWORD_SIZE);
1063+
NetworkPacket pkt(TOSERVER_PASSWORD_LEGACY, 2 * PASSWORD_SIZE);
10691064

10701065
for(u8 i = 0; i < PASSWORD_SIZE; i++) {
1071-
*pkt << (u8) (i < oldpwd.length() ? oldpwd[i] : 0);
1066+
pkt << (u8) (i < oldpwd.length() ? oldpwd[i] : 0);
10721067
}
10731068

10741069
for(u8 i = 0; i < PASSWORD_SIZE; i++) {
1075-
*pkt << (u8) (i < newpwd.length() ? newpwd[i] : 0);
1070+
pkt << (u8) (i < newpwd.length() ? newpwd[i] : 0);
10761071
}
10771072

1078-
Send(pkt);
1073+
Send(&pkt);
10791074
}
10801075

10811076

10821077
void Client::sendDamage(u8 damage)
10831078
{
10841079
DSTACK(__FUNCTION_NAME);
10851080

1086-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_DAMAGE, sizeof(u8));
1087-
*pkt << damage;
1088-
Send(pkt);
1081+
NetworkPacket pkt(TOSERVER_DAMAGE, sizeof(u8));
1082+
pkt << damage;
1083+
Send(&pkt);
10891084
}
10901085

10911086
void Client::sendBreath(u16 breath)
10921087
{
10931088
DSTACK(__FUNCTION_NAME);
10941089

1095-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_BREATH, sizeof(u16));
1096-
*pkt << breath;
1097-
Send(pkt);
1090+
NetworkPacket pkt(TOSERVER_BREATH, sizeof(u16));
1091+
pkt << breath;
1092+
Send(&pkt);
10981093
}
10991094

11001095
void Client::sendRespawn()
11011096
{
11021097
DSTACK(__FUNCTION_NAME);
11031098

1104-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_RESPAWN, 0);
1105-
Send(pkt);
1099+
NetworkPacket pkt(TOSERVER_RESPAWN, 0);
1100+
Send(&pkt);
11061101
}
11071102

11081103
void Client::sendReady()
11091104
{
11101105
DSTACK(__FUNCTION_NAME);
11111106

1112-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_CLIENT_READY,
1107+
NetworkPacket pkt(TOSERVER_CLIENT_READY,
11131108
1 + 1 + 1 + 1 + 2 + sizeof(char) * strlen(minetest_version_hash));
11141109

1115-
*pkt << (u8) VERSION_MAJOR << (u8) VERSION_MINOR << (u8) VERSION_PATCH_ORIG
1110+
pkt << (u8) VERSION_MAJOR << (u8) VERSION_MINOR << (u8) VERSION_PATCH_ORIG
11161111
<< (u8) 0 << (u16) strlen(minetest_version_hash);
11171112

1118-
pkt->putRawString(minetest_version_hash, (u16) strlen(minetest_version_hash));
1119-
Send(pkt);
1113+
pkt.putRawString(minetest_version_hash, (u16) strlen(minetest_version_hash));
1114+
Send(&pkt);
11201115
}
11211116

11221117
void Client::sendPlayerPos()
@@ -1168,11 +1163,11 @@ void Client::sendPlayerPos()
11681163
[12+12+4+4] u32 keyPressed
11691164
*/
11701165

1171-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_PLAYERPOS, 12 + 12 + 4 + 4 + 4);
1166+
NetworkPacket pkt(TOSERVER_PLAYERPOS, 12 + 12 + 4 + 4 + 4);
11721167

1173-
*pkt << position << speed << pitch << yaw << keyPressed;
1168+
pkt << position << speed << pitch << yaw << keyPressed;
11741169

1175-
Send(pkt);
1170+
Send(&pkt);
11761171
}
11771172

11781173
void Client::sendPlayerItem(u16 item)
@@ -1188,11 +1183,11 @@ void Client::sendPlayerItem(u16 item)
11881183
myplayer->peer_id = our_peer_id;
11891184
assert(myplayer->peer_id == our_peer_id);
11901185

1191-
NetworkPacket* pkt = new NetworkPacket(TOSERVER_PLAYERITEM, 2);
1186+
NetworkPacket pkt(TOSERVER_PLAYERITEM, 2);
11921187

1193-
*pkt << item;
1188+
pkt << item;
11941189

1195-
Send(pkt);
1190+
Send(&pkt);
11961191
}
11971192

11981193
void Client::removeNode(v3s16 p)

‎src/clientiface.cpp

+1-6
Original file line numberDiff line numberDiff line change
@@ -626,12 +626,9 @@ void ClientInterface::UpdatePlayerList()
626626
}
627627

628628
void ClientInterface::send(u16 peer_id, u8 channelnum,
629-
NetworkPacket* pkt, bool reliable, bool deletepkt)
629+
NetworkPacket* pkt, bool reliable)
630630
{
631631
m_con->Send(peer_id, channelnum, pkt, reliable);
632-
633-
if (deletepkt)
634-
delete pkt;
635632
}
636633

637634
void ClientInterface::sendToAll(u16 channelnum,
@@ -647,8 +644,6 @@ void ClientInterface::sendToAll(u16 channelnum,
647644
m_con->Send(client->peer_id, channelnum, pkt, reliable);
648645
}
649646
}
650-
651-
delete pkt;
652647
}
653648

654649
RemoteClient* ClientInterface::getClientNoEx(u16 peer_id, ClientState state_min)

0 commit comments

Comments
 (0)
Please sign in to comment.