From f40c06789aff88fa50bbc4387a1343f757a829a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Mon, 20 Dec 2021 20:31:48 +0100 Subject: [PATCH] fix: prevent garbage collection of receive and send callback --- Local/NosSmooth.LocalCore/Network.cpp | 2 ++ Local/NosSmooth.LocalCore/Network.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Local/NosSmooth.LocalCore/Network.cpp b/Local/NosSmooth.LocalCore/Network.cpp index 6be4e0f..768b299 100644 --- a/Local/NosSmooth.LocalCore/Network.cpp +++ b/Local/NosSmooth.LocalCore/Network.cpp @@ -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(functionPointer.ToPointer())); } void Network::SetSendCallback(NetworkCallback^ callback) { IntPtr functionPointer = Marshal::GetFunctionPointerForDelegate(callback); + _sendCallback = callback; NetworkUnmanaged::GetInstance()->SetSendCallback(static_cast(functionPointer.ToPointer())); } \ No newline at end of file diff --git a/Local/NosSmooth.LocalCore/Network.h b/Local/NosSmooth.LocalCore/Network.h index ca13a62..2b4c127 100644 --- a/Local/NosSmooth.LocalCore/Network.h +++ b/Local/NosSmooth.LocalCore/Network.h @@ -39,6 +39,8 @@ namespace NosSmoothCore void ResetHooks(); private: NetworkUnmanaged* _networkUnmanaged; + NetworkCallback^ _sendCallback; + NetworkCallback^ _receiveCallback; }; } -- 2.48.1