Made NetState.Send virtual.
Lifespan of Packet.UnderlyingStream extended until Packet.Release (previously was freed in Packet.Compile).
This commit is contained in:
parent
e9b696064f
commit
9dd4c1d37b
2 changed files with 7 additions and 4 deletions
|
|
@ -482,7 +482,7 @@ namespace Server.Network
|
||||||
m_CreatedCallback( this );
|
m_CreatedCallback( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Send( Packet p )
|
public virtual void Send( Packet p )
|
||||||
{
|
{
|
||||||
if ( m_Socket == null || m_BlockAllPackets )
|
if ( m_Socket == null || m_BlockAllPackets )
|
||||||
{
|
{
|
||||||
|
|
@ -730,7 +730,7 @@ namespace Server.Network
|
||||||
|
|
||||||
private bool m_Disposing;
|
private bool m_Disposing;
|
||||||
|
|
||||||
public void Dispose( bool flush )
|
public virtual void Dispose( bool flush )
|
||||||
{
|
{
|
||||||
if ( m_Socket == null || m_Disposing )
|
if ( m_Socket == null || m_Disposing )
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -3568,6 +3568,9 @@ namespace Server.Network
|
||||||
if ( (m_State & State.Buffered) != 0 )
|
if ( (m_State & State.Buffered) != 0 )
|
||||||
m_Buffers.ReleaseBuffer( m_CompiledBuffer );
|
m_Buffers.ReleaseBuffer( m_CompiledBuffer );
|
||||||
|
|
||||||
|
PacketWriter.ReleaseInstance( m_Stream );
|
||||||
|
m_Stream = null;
|
||||||
|
|
||||||
m_State &= ~(State.Static | State.Acquired | State.Buffered);
|
m_State &= ~(State.Static | State.Acquired | State.Buffered);
|
||||||
|
|
||||||
m_CompiledBuffer = null;
|
m_CompiledBuffer = null;
|
||||||
|
|
@ -3671,8 +3674,8 @@ namespace Server.Network
|
||||||
Buffer.BlockCopy( old, 0, m_CompiledBuffer, 0, length );
|
Buffer.BlockCopy( old, 0, m_CompiledBuffer, 0, length );
|
||||||
}
|
}
|
||||||
|
|
||||||
PacketWriter.ReleaseInstance( m_Stream );
|
//PacketWriter.ReleaseInstance( m_Stream );
|
||||||
m_Stream = null;
|
//m_Stream = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue