Browse Source

treat destroying NULL as no-op

Lee Salzman 12 năm trước cách đây
mục cha
commit
71b7550049
4 tập tin đã thay đổi với 10 bổ sung2 xóa
  1. 3 0
      host.c
  2. 3 0
      packet.c
  3. 2 1
      unix.c
  4. 2 1
      win32.c

+ 3 - 0
host.c

@@ -135,6 +135,9 @@ enet_host_destroy (ENetHost * host)
 {
     ENetPeer * currentPeer;
 
+    if (host == NULL)
+      return;
+
     enet_socket_destroy (host -> socket);
 
     for (currentPeer = host -> peers;

+ 3 - 0
packet.c

@@ -55,6 +55,9 @@ enet_packet_create (const void * data, size_t dataLength, enet_uint32 flags)
 void
 enet_packet_destroy (ENetPacket * packet)
 {
+    if (packet == NULL)
+      return;
+
     if (packet -> freeCallback != NULL)
       (* packet -> freeCallback) (packet);
     if (! (packet -> flags & ENET_PACKET_FLAG_NO_ALLOCATE) &&

+ 2 - 1
unix.c

@@ -273,7 +273,8 @@ enet_socket_accept (ENetSocket socket, ENetAddress * address)
 void
 enet_socket_destroy (ENetSocket socket)
 {
-    close (socket);
+    if (socket != -1)
+      close (socket);
 }
 
 int

+ 2 - 1
win32.c

@@ -220,7 +220,8 @@ enet_socket_accept (ENetSocket socket, ENetAddress * address)
 void
 enet_socket_destroy (ENetSocket socket)
 {
-    closesocket (socket);
+    if (socket != INVALID_SOCKET)
+      closesocket (socket);
 }
 
 int