diff --git a/Lidgren.Network/NetClient.cs b/Lidgren.Network/NetClient.cs index 06b88a4..66c7970 100644 --- a/Lidgren.Network/NetClient.cs +++ b/Lidgren.Network/NetClient.cs @@ -157,6 +157,7 @@ namespace Lidgren.Network if (serverConnection == null) { LogWarning("Cannot send message, no server connection!"); + Recycle(msg); return NetSendResult.FailedNotConnected; } diff --git a/Lidgren.Network/NetPeer.Send.cs b/Lidgren.Network/NetPeer.Send.cs index 57faef4..c7a3f39 100644 --- a/Lidgren.Network/NetPeer.Send.cs +++ b/Lidgren.Network/NetPeer.Send.cs @@ -104,9 +104,17 @@ namespace Lidgren.Network if (msg == null) throw new ArgumentNullException("msg"); if (recipients == null) + { + if (msg.m_isSent == false) + Recycle(msg); throw new ArgumentNullException("recipients"); + } if (recipients.Count < 1) + { + if (msg.m_isSent == false) + Recycle(msg); throw new NetException("recipients must contain at least one item"); + } if (method == NetDeliveryMethod.Unreliable || method == NetDeliveryMethod.ReliableUnordered) NetException.Assert(sequenceChannel == 0, "Delivery method " + method + " cannot use sequence channels other than 0!"); if (msg.m_isSent)