~ruther/NosSmooth

f40c06789aff88fa50bbc4387a1343f757a829a6 — František Boháček 3 years ago 9c2100f
fix: prevent garbage collection of receive and send callback
2 files changed, 4 insertions(+), 0 deletions(-)

M Local/NosSmooth.LocalCore/Network.cpp
M Local/NosSmooth.LocalCore/Network.h
M Local/NosSmooth.LocalCore/Network.cpp => Local/NosSmooth.LocalCore/Network.cpp +2 -0
@@ 31,11 31,13 @@ void Network::ReceivePacket(System::String^ packet)
void Network::SetReceiveCallback(NetworkCallback^ callback)
{
    IntPtr functionPointer = Marshal::GetFunctionPointerForDelegate(callback);
    _receiveCallback = callback;
    NetworkUnmanaged::GetInstance()->SetReceiveCallback(static_cast<PacketCallback>(functionPointer.ToPointer()));
}

void Network::SetSendCallback(NetworkCallback^ callback)
{
    IntPtr functionPointer = Marshal::GetFunctionPointerForDelegate(callback);
    _sendCallback = callback;
    NetworkUnmanaged::GetInstance()->SetSendCallback(static_cast<PacketCallback>(functionPointer.ToPointer()));
}
\ No newline at end of file

M Local/NosSmooth.LocalCore/Network.h => Local/NosSmooth.LocalCore/Network.h +2 -0
@@ 39,6 39,8 @@ namespace NosSmoothCore
		void ResetHooks();
	private:
		NetworkUnmanaged* _networkUnmanaged;
		NetworkCallback^ _sendCallback;
		NetworkCallback^ _receiveCallback;
	};
}


Do not follow this link