Skip to content

Commit 42c03e1

Browse files
committed
code: bring enet_packet_resize back
1 parent 0af71dd commit 42c03e1

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

include/enet.h

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,7 @@ extern "C" {
254254
extern void *enet_malloc(size_t);
255255
extern void enet_free(void *);
256256
extern ENetPacket* enet_packet_create(const void*,size_t,enet_uint32);
257+
extern int enet_packet_resize(ENetPacket*, size_t);
257258
extern ENetPacket* enet_packet_copy(ENetPacket*);
258259
extern void enet_packet_destroy(ENetPacket*);
259260

@@ -1391,6 +1392,36 @@ extern "C" {
13911392
return packet;
13921393
}
13931394

1395+
/** Attempts to resize the data in the packet to length specified in the
1396+
dataLength parameter
1397+
@param packet packet to resize
1398+
@param dataLength new size for the packet data
1399+
@returns 0 on success, < 0 on failure
1400+
*/
1401+
int enet_packet_resize(ENetPacket * packet, size_t dataLength)
1402+
{
1403+
enet_uint8 *newData = 0;
1404+
1405+
if (dataLength <= packet->dataLength || (packet->flags & ENET_PACKET_FLAG_NO_ALLOCATE))
1406+
{
1407+
packet->dataLength = dataLength;
1408+
1409+
return 0;
1410+
}
1411+
1412+
newData = (enet_uint8 *) enet_malloc(dataLength);
1413+
if (newData == NULL)
1414+
return -1;
1415+
1416+
memcpy(newData, packet->data, packet->dataLength);
1417+
enet_free(packet->data);
1418+
1419+
packet->data = newData;
1420+
packet->dataLength = dataLength;
1421+
1422+
return 0;
1423+
}
1424+
13941425
ENetPacket *enet_packet_create_offset(const void *data, size_t dataLength, size_t dataOffset, enet_uint32 flags) {
13951426
ENetPacket *packet;
13961427
if (flags & ENET_PACKET_FLAG_NO_ALLOCATE) {

0 commit comments

Comments
 (0)