diff --git a/src/bindings/mono/eina_mono/eina_promises.cs b/src/bindings/mono/eina_mono/eina_promises.cs index 34561a5b08..dc8642aeaa 100644 --- a/src/bindings/mono/eina_mono/eina_promises.cs +++ b/src/bindings/mono/eina_mono/eina_promises.cs @@ -295,12 +295,14 @@ public class Future private static IntPtr ThenRaw(IntPtr previous, ResolvedCb cb) { FutureDesc desc = new FutureDesc(); - desc.cb = NativeResolvedCb; + desc.cb = NativeResolvedCbDelegate; GCHandle handle = GCHandle.Alloc(cb); desc.data = GCHandle.ToIntPtr(handle); return eina_future_then_from_desc(previous, desc); } + private static FutureCb NativeResolvedCbDelegate = new FutureCb(NativeResolvedCb); + private static Eina.ValueNative NativeResolvedCb(IntPtr data, Eina.ValueNative value, IntPtr dead_future) { GCHandle handle = GCHandle.FromIntPtr(data); @@ -340,7 +342,7 @@ public class Future for (; i < cbsList.Count(); i++) { ResolvedCb cb = cbsList[i]; - descs[i].cb = NativeResolvedCb; + descs[i].cb = NativeResolvedCbDelegate; GCHandle handle = GCHandle.Alloc(cb); descs[i].data = GCHandle.ToIntPtr(handle); }