From 6af04a10585fbbceae89a94cc66b38b3cf3837f9 Mon Sep 17 00:00:00 2001 From: Midhun Mohan Date: Tue, 18 Feb 2020 11:36:54 +0000 Subject: [PATCH] Changing timeout_add and idle_add to _full. --- Source/Libs/GLibSharp/Idle.cs | 4 +++- Source/Libs/GLibSharp/Timeout.cs | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/Libs/GLibSharp/Idle.cs b/Source/Libs/GLibSharp/Idle.cs index 773b983ed..9dda13518 100644 --- a/Source/Libs/GLibSharp/Idle.cs +++ b/Source/Libs/GLibSharp/Idle.cs @@ -78,7 +78,9 @@ namespace GLib { IdleProxy p = new IdleProxy (hndlr); lock (p) { - p.ID = g_idle_add ((IdleHandlerInternal) p.proxy_handler, IntPtr.Zero); + var gch = GCHandle.Alloc(p); + var userData = GCHandle.ToIntPtr(gch); + p.ID = g_idle_add_full (0, (IdleHandlerInternal) p.proxy_handler, userData, DestroyHelper.NotifyHandler); Source.AddSourceHandler (p.ID, p); } diff --git a/Source/Libs/GLibSharp/Timeout.cs b/Source/Libs/GLibSharp/Timeout.cs index cdb988d6d..2b48d66e1 100644 --- a/Source/Libs/GLibSharp/Timeout.cs +++ b/Source/Libs/GLibSharp/Timeout.cs @@ -73,7 +73,9 @@ namespace GLib { TimeoutProxy p = new TimeoutProxy (hndlr); lock (p) { - p.ID = g_timeout_add (interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero); + var gch = GCHandle.Alloc(p); + var userData = GCHandle.ToIntPtr(gch); + p.ID = g_timeout_add_full (0, interval, (TimeoutHandlerInternal) p.proxy_handler, userData, DestroyHelper.NotifyHandler); Source.AddSourceHandler (p.ID, p); }