Skip to content

Commit 2de918b

Browse files
committed
fix enet_packet_resize
1 parent 049a093 commit 2de918b

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

include/enet.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +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);
257+
extern ENetPacket* enet_packet_resize(ENetPacket*, size_t);
258258
extern ENetPacket* enet_packet_copy(ENetPacket*);
259259
extern void enet_packet_destroy(ENetPacket*);
260260

@@ -1396,28 +1396,29 @@ extern "C" {
13961396
dataLength parameter
13971397
@param packet packet to resize
13981398
@param dataLength new size for the packet data
1399-
@returns 0 on success, < 0 on failure
1399+
@returns new packet pointer on success, NULL on failure
14001400
*/
1401-
int enet_packet_resize(ENetPacket * packet, size_t dataLength)
1401+
ENetPacket* enet_packet_resize(ENetPacket * packet, size_t dataLength)
14021402
{
14031403
ENetPacket *newPacket = NULL;
14041404

14051405
if (dataLength <= packet->dataLength || (packet->flags & ENET_PACKET_FLAG_NO_ALLOCATE))
14061406
{
14071407
packet->dataLength = dataLength;
14081408

1409-
return 0;
1409+
return packet;
14101410
}
14111411

14121412
newPacket = (ENetPacket *)enet_malloc(sizeof (ENetPacket) + dataLength);
14131413
if (newPacket == NULL)
1414-
return -1;
1414+
return NULL;
14151415

14161416
memcpy(newPacket, packet, sizeof(ENetPacket) + packet->dataLength);
14171417
newPacket->data = (enet_uint8 *)newPacket + sizeof(ENetPacket);
1418+
newPacket->dataLength = dataLength;
14181419
enet_free(packet);
14191420

1420-
return 0;
1421+
return newPacket;
14211422
}
14221423

14231424
ENetPacket *enet_packet_create_offset(const void *data, size_t dataLength, size_t dataOffset, enet_uint32 flags) {

misc/docs/tutorial.dox

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ dispatching any events.
247247

248248
/* Extend the packet so and append the string "foo", so it now */
249249
/* contains "packetfoo\0" */
250-
enet_packet_resize (packet, strlen ("packetfoo") + 1);
250+
packet = enet_packet_resize (packet, strlen ("packetfoo") + 1);
251251
strcpy (& packet -> data [strlen ("packet")], "foo");
252252

253253
/* Send the packet to the peer over channel id 0. */

test/resize.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,8 @@ int main() {
44
ENetPacket *packet = enet_packet_create("packet",
55
strlen("packet") + 1,
66
ENET_PACKET_FLAG_RELIABLE);
7-
enet_packet_resize(packet, strlen("packetfoo") + 1);
7+
printf("length: %d, data: %.*s\n", packet->dataLength, packet->dataLength, (char*)packet->data);
8+
packet = enet_packet_resize(packet, strlen("packetfoo") + 1);
9+
strcpy (& packet -> data [strlen ("packet")], "foo");
10+
printf("length: %d, data: %.*s\n", packet->dataLength, packet->dataLength, (char*)packet->data);
811
}

0 commit comments

Comments
 (0)