From c7013b87f7d7f6d3c7c0899cf699963bda38e923 Mon Sep 17 00:00:00 2001 From: Younho Park Date: Fri, 15 Sep 2017 11:16:59 +0900 Subject: [PATCH] modified internal delegate to private to avoid deletion by GC Change-Id: I769b5a988453cb1fe70cf9463122e614b7ceaa83 Signed-off-by: Younho Park --- src/Tizen.Messaging.Push/Tizen.Messaging.Push/PushImpl.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Tizen.Messaging.Push/Tizen.Messaging.Push/PushImpl.cs b/src/Tizen.Messaging.Push/Tizen.Messaging.Push/PushImpl.cs index 2c49734..c569405 100644 --- a/src/Tizen.Messaging.Push/Tizen.Messaging.Push/PushImpl.cs +++ b/src/Tizen.Messaging.Push/Tizen.Messaging.Push/PushImpl.cs @@ -26,6 +26,8 @@ namespace Tizen.Messaging.Push { private static readonly object _lock = new object(); private static PushImpl _instance; + private Interop.PushClient.VoidResultCallback registerResult; + private Interop.PushClient.VoidResultCallback unregisterResult; internal static PushImpl Instance { @@ -157,9 +159,9 @@ namespace Tizen.Messaging.Push { Log.Info(Interop.PushClient.LogTag, "Register Called"); var task = new TaskCompletionSource(); - Interop.PushClient.VoidResultCallback registerResult = (Interop.PushClient.Result regResult, IntPtr msgPtr, IntPtr userData) => + registerResult = (Interop.PushClient.Result regResult, IntPtr msgPtr, IntPtr userData) => { - Log.Info(Interop.PushClient.LogTag, "Register Callback Called"); + Log.Info(Interop.PushClient.LogTag, "Register Callback Called with " + regResult); string msg = ""; if (msgPtr != IntPtr.Zero) { @@ -186,7 +188,7 @@ namespace Tizen.Messaging.Push internal async Task PushServerUnregister() { var task = new TaskCompletionSource(); - Interop.PushClient.VoidResultCallback registerResult = (Interop.PushClient.Result regResult, IntPtr msgPtr, IntPtr userData) => + unregisterResult = (Interop.PushClient.Result regResult, IntPtr msgPtr, IntPtr userData) => { Log.Info(Interop.PushClient.LogTag, "Unregister Callback Called"); string msg = ""; @@ -202,7 +204,7 @@ namespace Tizen.Messaging.Push Log.Error(Interop.PushClient.LogTag, "Unable to set the Result for Unregister"); } }; - Interop.PushClient.ServiceError result = Interop.PushClient.ServiceDeregister(_connection, registerResult, IntPtr.Zero); + Interop.PushClient.ServiceError result = Interop.PushClient.ServiceDeregister(_connection, unregisterResult, IntPtr.Zero); if (result != Interop.PushClient.ServiceError.None) { task.SetException(PushExceptionFactory.CreateResponseException(result)); -- 2.7.4