protected virtual void Dispose(bool disposing) { if (this._cb_free_cb != null) { if (disposing) { this._cb_free_cb(this._cb_data); } else { Efl.Eo.Globals.ThreadSafeFreeCbExec(this._cb_free_cb, this._cb_data); } this._cb_free_cb = null; this._cb_data = IntPtr.Zero; this._cb = null; } }
private static bool signal_callback_del(System.IntPtr obj, System.IntPtr pd, System.String emission, System.String source, IntPtr func_data, EflLayoutSignalCbInternal func, EinaFreeCb func_free_cb) { Eina.Log.Debug("function efl_layout_signal_callback_del was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.data_get(pd); if (wrapper != null) { EflLayoutSignalCbWrapper func_wrapper = new EflLayoutSignalCbWrapper(func, func_data, func_free_cb); bool _ret_var = default(bool); try { _ret_var = ((Signal)wrapper).DelSignalCallback(emission, source, func_wrapper.ManagedCb); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } return(_ret_var); } else { return(efl_layout_signal_callback_del_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), emission, source, func_data, func, func_free_cb)); } }
internal EflLayoutSignalCbWrapper(EflLayoutSignalCbInternal _cb, IntPtr _cb_data, EinaFreeCb _cb_free_cb) { this._cb = _cb; this._cb_data = _cb_data; this._cb_free_cb = _cb_free_cb; }