Skip to content

Commit 86dfe6b

Browse files
committed
add debug refcount thing
1 parent 82fb3a7 commit 86dfe6b

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

LiteNetLib/NetPacket.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ public ushort FragmentsTotal
127127
//Pool node
128128
public NetPacket Next;
129129

130+
#if DEBUG_REFCOUNT
131+
public int RefCount = 0;
132+
#endif
133+
130134
public NetPacket(int size)
131135
{
132136
RawData = new byte[size];

LiteNetLib/NetPacketPool.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@ public NetPacket GetPacket(int size)
4545
return new NetPacket(size);
4646
} while (packet != Interlocked.CompareExchange(ref _head, packet.Next, packet));
4747

48+
#if DEBUG_REFCOUNT
49+
if (Interlocked.Increment(ref packet.RefCount) > 1)
50+
{
51+
Interlocked.Decrement(ref packet.RefCount);
52+
NetDebug.WriteError("PacketRefCount more than 1: {0}", Environment.StackTrace);
53+
return new NetPacket(size);
54+
}
55+
#endif
56+
4857
_count--;
4958
packet.Size = size;
5059
if (packet.RawData.Length < size)
@@ -65,6 +74,11 @@ public void Recycle(NetPacket packet)
6574
//Clean fragmented flag
6675
packet.RawData[0] = 0;
6776

77+
#if DEBUG_REFCOUNT
78+
if (packet.RefCount > 0)
79+
Interlocked.Decrement(ref packet.RefCount);
80+
#endif
81+
6882
do
6983
{
7084
packet.Next = _head;

LiteNetLib/NetPeer.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -743,12 +743,6 @@ internal void AddReliablePacket(DeliveryMethod method, NetPacket p)
743743
NetDebug.WriteError("Fragment error pos: {0} >= resultPacketSize: {1}", pos + writtenSize, resultingPacket.RawData.Length);
744744
return;
745745
}
746-
if (fragment.Size > fragment.RawData.Length)
747-
{
748-
_holdedFragments.Remove(packetFragId);
749-
NetDebug.WriteError("Fragment error size: {0} > fragment.RawData.Length: {1}", fragment.Size, fragment.RawData.Length);
750-
return;
751-
}
752746

753747
//Create resulting big packet
754748
Buffer.BlockCopy(

0 commit comments

Comments
 (0)