浏览代码

bound totalWaitingData decrement

Lee Salzman 1 年之前
父节点
当前提交
1e80a78f48
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      peer.c

+ 3 - 2
peer.c

@@ -4,6 +4,7 @@
 */
 */
 #include <string.h>
 #include <string.h>
 #define ENET_BUILDING_LIB 1
 #define ENET_BUILDING_LIB 1
+#include "enet/utility.h"
 #include "enet/enet.h"
 #include "enet/enet.h"
 
 
 /** @defgroup peer ENet peer functions 
 /** @defgroup peer ENet peer functions 
@@ -249,7 +250,7 @@ enet_peer_receive (ENetPeer * peer, enet_uint8 * channelID)
 
 
    enet_free (incomingCommand);
    enet_free (incomingCommand);
 
 
-   peer -> totalWaitingData -= packet -> dataLength;
+   peer -> totalWaitingData -= ENET_MIN (peer -> totalWaitingData, packet -> dataLength);
 
 
    return packet;
    return packet;
 }
 }
@@ -295,7 +296,7 @@ enet_peer_remove_incoming_commands (ENetPeer * peer, ENetList * queue, ENetListI
        {
        {
           -- incomingCommand -> packet -> referenceCount;
           -- incomingCommand -> packet -> referenceCount;
 
 
-          peer -> totalWaitingData -= incomingCommand -> packet -> dataLength;
+          peer -> totalWaitingData -= ENET_MIN (peer -> totalWaitingData, incomingCommand -> packet -> dataLength);
 
 
           if (incomingCommand -> packet -> referenceCount == 0)
           if (incomingCommand -> packet -> referenceCount == 0)
             enet_packet_destroy (incomingCommand -> packet);
             enet_packet_destroy (incomingCommand -> packet);