|  | @@ -885,7 +885,6 @@ extern "C" {
 | 
	
		
			
				|  |  |      ENET_API ENetPacket * enet_packet_create (const void *, size_t, enet_uint32);
 | 
	
		
			
				|  |  |      ENET_API ENetPacket * enet_packet_create_offset (const void *, size_t, size_t, enet_uint32);
 | 
	
		
			
				|  |  |      ENET_API void         enet_packet_destroy (ENetPacket *);
 | 
	
		
			
				|  |  | -    ENET_API int          enet_packet_resize  (ENetPacket *, size_t);
 | 
	
		
			
				|  |  |      ENET_API enet_uint32  enet_crc32 (const ENetBuffer *, size_t);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      ENET_API ENetHost * enet_host_create (const ENetAddress *, size_t, size_t, enet_uint32, enet_uint32);
 | 
	
	
		
			
				|  | @@ -1251,23 +1250,23 @@ extern "C" {
 | 
	
		
			
				|  |  |       * @returns the packet on success, NULL on failure
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      ENetPacket *enet_packet_create(const void *data, size_t dataLength, enet_uint32 flags) {
 | 
	
		
			
				|  |  | -        ENetPacket *packet = (ENetPacket *)enet_malloc(sizeof(ENetPacket));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        if (packet == NULL) {
 | 
	
		
			
				|  |  | -            return NULL;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +        ENetPacket *packet;
 | 
	
		
			
				|  |  |          if (flags & ENET_PACKET_FLAG_NO_ALLOCATE) {
 | 
	
		
			
				|  |  | +            packet = (ENetPacket *)enet_malloc(sizeof (ENetPacket));
 | 
	
		
			
				|  |  | +            if (packet == NULL) {
 | 
	
		
			
				|  |  | +                return NULL;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              packet->data = (enet_uint8 *)data;
 | 
	
		
			
				|  |  | -        } else if (dataLength <= 0) {
 | 
	
		
			
				|  |  | -            packet->data = NULL;
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -            packet->data = (enet_uint8 *)enet_malloc(dataLength);
 | 
	
		
			
				|  |  | -            if (packet->data == NULL) {
 | 
	
		
			
				|  |  | -                enet_free(packet);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        else {
 | 
	
		
			
				|  |  | +            packet = (ENetPacket *)enet_malloc(sizeof (ENetPacket) + dataLength);
 | 
	
		
			
				|  |  | +            if (packet == NULL) {
 | 
	
		
			
				|  |  |                  return NULL;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            packet->data = (enet_uint8 *)packet + sizeof(ENetPacket);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              if (data != NULL) {
 | 
	
		
			
				|  |  |                  memcpy(packet->data, data, dataLength);
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -1283,24 +1282,23 @@ extern "C" {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      ENetPacket *enet_packet_create_offset(const void *data, size_t dataLength, size_t dataOffset, enet_uint32 flags) {
 | 
	
		
			
				|  |  | -        ENetPacket *packet = (ENetPacket *)enet_malloc(sizeof(ENetPacket));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        if (packet == NULL) {
 | 
	
		
			
				|  |  | -            return NULL;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +        ENetPacket *packet;
 | 
	
		
			
				|  |  |          if (flags & ENET_PACKET_FLAG_NO_ALLOCATE) {
 | 
	
		
			
				|  |  | -            packet->data = (enet_uint8 *)data;
 | 
	
		
			
				|  |  | -        } else if ((dataLength + dataOffset) <= 0)   {
 | 
	
		
			
				|  |  | -            packet->data = NULL;
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -            packet->data = (enet_uint8 *)enet_malloc(dataLength + dataOffset);
 | 
	
		
			
				|  |  | +            packet = (ENetPacket *)enet_malloc(sizeof (ENetPacket));
 | 
	
		
			
				|  |  | +            if (packet == NULL) {
 | 
	
		
			
				|  |  | +                return NULL;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            if (packet->data == NULL) {
 | 
	
		
			
				|  |  | -                enet_free(packet);
 | 
	
		
			
				|  |  | +            packet->data = (enet_uint8 *)data;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        else {
 | 
	
		
			
				|  |  | +            packet = (ENetPacket *)enet_malloc(sizeof (ENetPacket) + dataLength + dataOffset);
 | 
	
		
			
				|  |  | +            if (packet == NULL) {
 | 
	
		
			
				|  |  |                  return NULL;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            packet->data = (enet_uint8 *)packet + sizeof(ENetPacket);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              if (data != NULL) {
 | 
	
		
			
				|  |  |                  memcpy(packet->data + dataOffset, data, dataLength);
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -1328,41 +1326,9 @@ extern "C" {
 | 
	
		
			
				|  |  |              (*packet->freeCallback)((void *)packet);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (!(packet->flags & ENET_PACKET_FLAG_NO_ALLOCATE) && packet->data != NULL) {
 | 
	
		
			
				|  |  | -            enet_free(packet->data);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          enet_free(packet);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    /** Attempts to resize the data in the packet to length specified in the
 | 
	
		
			
				|  |  | -     *  dataLength parameter
 | 
	
		
			
				|  |  | -     *  @param packet packet to resize
 | 
	
		
			
				|  |  | -     *  @param dataLength new size for the packet data
 | 
	
		
			
				|  |  | -     *  @returns 0 on success, < 0 on failure
 | 
	
		
			
				|  |  | -     */
 | 
	
		
			
				|  |  | -    int enet_packet_resize(ENetPacket *packet, size_t dataLength) {
 | 
	
		
			
				|  |  | -        enet_uint8 *newData;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        if (dataLength <= packet->dataLength || (packet->flags & ENET_PACKET_FLAG_NO_ALLOCATE)) {
 | 
	
		
			
				|  |  | -            packet->dataLength = dataLength;
 | 
	
		
			
				|  |  | -            return 0;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        newData = (enet_uint8 *)enet_malloc(dataLength);
 | 
	
		
			
				|  |  | -        if (newData == NULL) {
 | 
	
		
			
				|  |  | -            return -1;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        memcpy(newData, packet->data, packet->dataLength);
 | 
	
		
			
				|  |  | -        enet_free(packet->data);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        packet->data       = newData;
 | 
	
		
			
				|  |  | -        packet->dataLength = dataLength;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        return 0;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      static int initializedCRC32 = 0;
 | 
	
		
			
				|  |  |      static enet_uint32 crcTable[256];
 | 
	
		
			
				|  |  |  
 |