Skip to content

Instantly share code, notes, and snippets.

@Therzok
Created December 9, 2017 16:46
Show Gist options
  • Save Therzok/191c99144158178bb6af8d9b7a1cebf5 to your computer and use it in GitHub Desktop.
Save Therzok/191c99144158178bb6af8d9b7a1cebf5 to your computer and use it in GitHub Desktop.
diff --git a/configure.in.in b/configure.in.in
index dde7bce7c..774c0afbc 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -116,6 +116,7 @@ if test "x$has_mono" = "xfalse" ; then
else
PKG_CHECK_MODULES(MONO_DEPENDENCY, mono >= $FIRST_MONO_VERSION_WITH_NET_4_6_SUPPORT, NET_4_6_SUPPORT=true, NET_4_6_SUPPORT=false)
fi
+has_mono=true
if test "x$platform_win32" = "xyes"; then
NET_4_6_SUPPORT=true
diff --git a/gdk/generated/GLibSharp.SpawnChildSetupFuncNative.cs b/gdk/generated/GLibSharp.SpawnChildSetupFuncNative.cs
index 96ab9b9a0..74c12206c 100644
--- a/gdk/generated/GLibSharp.SpawnChildSetupFuncNative.cs
+++ b/gdk/generated/GLibSharp.SpawnChildSetupFuncNative.cs
@@ -10,37 +10,22 @@ namespace GLibSharp {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void SpawnChildSetupFuncNative(IntPtr data);
- internal class SpawnChildSetupFuncWrapper {
+ internal static class SpawnChildSetupFuncWrapper {
public static void NativeCallback (IntPtr data)
{
try {
var gch = (GCHandle)data;
- var wrapper = (SpawnChildSetupFuncWrapper)gch.Target;
- wrapper.managed ();
- if (wrapper.release_on_call)
+ var managed = (GLib.SpawnChildSetupFunc)gch.Target;
+ managed ();
gch.Free ();
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
}
- bool release_on_call = false;
-
- public GCHandle PersistUntilCalled ()
- {
- release_on_call = true;
- return GCHandle.Alloc (this);
- }
internal static SpawnChildSetupFuncNative NativeDelegate = new SpawnChildSetupFuncNative (NativeCallback);
- GLib.SpawnChildSetupFunc managed;
-
- public SpawnChildSetupFuncWrapper (GLib.SpawnChildSetupFunc managed)
- {
- this.managed = managed;
- }
-
}
#endregion
}
diff --git a/gdk/generated/Spawn.cs b/gdk/generated/Spawn.cs
index 90b22d1cb..a97ae7510 100644
--- a/gdk/generated/Spawn.cs
+++ b/gdk/generated/Spawn.cs
@@ -26,8 +26,7 @@ namespace Gdk {
native_envp [i] = GLib.Marshaller.StringToPtrGStrdup(envp[i]);
}
native_envp [cnt_envp] = IntPtr.Zero;
- GLibSharp.SpawnChildSetupFuncWrapper child_setup_wrapper = new GLibSharp.SpawnChildSetupFuncWrapper (child_setup);
- GCHandle gch = child_setup_wrapper.PersistUntilCalled ();
+ GCHandle gch = GCHandle.Alloc (child_setup);
IntPtr error = IntPtr.Zero;
bool raw_ret = gdk_spawn_on_screen(screen == null ? IntPtr.Zero : screen.Handle, native_working_directory, native_argv, native_envp, (int) flags, GLibSharp.SpawnChildSetupFuncWrapper.NativeDelegate, (IntPtr)gch, out child_pid, out error);
bool ret = raw_ret;
@@ -59,8 +58,7 @@ namespace Gdk {
native_envp [i] = GLib.Marshaller.StringToPtrGStrdup(envp[i]);
}
native_envp [cnt_envp] = IntPtr.Zero;
- GLibSharp.SpawnChildSetupFuncWrapper child_setup_wrapper = new GLibSharp.SpawnChildSetupFuncWrapper (child_setup);
- GCHandle gch = child_setup_wrapper.PersistUntilCalled ();
+ GCHandle gch = GCHandle.Alloc (child_setup);
IntPtr error = IntPtr.Zero;
bool raw_ret = gdk_spawn_on_screen_with_pipes(screen == null ? IntPtr.Zero : screen.Handle, native_working_directory, native_argv, native_envp, (int) flags, GLibSharp.SpawnChildSetupFuncWrapper.NativeDelegate, (IntPtr)gch, out child_pid, out standard_input, out standard_output, out standard_error, out error);
bool ret = raw_ret;
diff --git a/generator/CallbackGen.cs b/generator/CallbackGen.cs
index bfc5a4bec..c9391cc40 100644
--- a/generator/CallbackGen.cs
+++ b/generator/CallbackGen.cs
@@ -320,7 +320,7 @@ namespace GtkSharp.Generation {
sw.WriteLine ("\t\t\t}");
sw.WriteLine ("\t\t}");
sw.WriteLine ();
- if (!GenerateStaticWrapper) {
+ if (!GenerateStaticWrapper && HasAsyncCall) {
sw.WriteLine ("\t\tbool release_on_call = false;");
if (!WithParamGCHandle)
sw.WriteLine ("\t\tGCHandle gch;");
diff --git a/gtk/generated/Clipboard.cs b/gtk/generated/Clipboard.cs
index d16006a7f..1c6dd7ba5 100644
--- a/gtk/generated/Clipboard.cs
+++ b/gtk/generated/Clipboard.cs
@@ -116,8 +116,7 @@ namespace Gtk {
public void RequestTargets(Gtk.ClipboardTargetsReceivedFunc cb) {
Gtk.Application.AssertMainThread();
- GtkSharp.ClipboardTargetsReceivedFuncWrapper cb_wrapper = new GtkSharp.ClipboardTargetsReceivedFuncWrapper (cb);
- GCHandle gch = cb_wrapper.PersistUntilCalled ();
+ GCHandle gch = GCHandle.Alloc (cb);
gtk_clipboard_request_targets(Handle, GtkSharp.ClipboardTargetsReceivedFuncWrapper.NativeDelegate, (IntPtr)gch);
}
@@ -135,8 +134,7 @@ namespace Gtk {
public void RequestContents(Gdk.Atom target, Gtk.ClipboardReceivedFunc cb) {
Gtk.Application.AssertMainThread();
- GtkSharp.ClipboardReceivedFuncWrapper cb_wrapper = new GtkSharp.ClipboardReceivedFuncWrapper (cb);
- GCHandle gch = cb_wrapper.PersistUntilCalled ();
+ GCHandle gch = GCHandle.Alloc (cb);
gtk_clipboard_request_contents(Handle, target == null ? IntPtr.Zero : target.Handle, GtkSharp.ClipboardReceivedFuncWrapper.NativeDelegate, (IntPtr)gch);
}
@@ -154,8 +152,7 @@ namespace Gtk {
public void RequestImage(Gtk.ClipboardImageReceivedFunc cb) {
Gtk.Application.AssertMainThread();
- GtkSharp.ClipboardImageReceivedFuncWrapper cb_wrapper = new GtkSharp.ClipboardImageReceivedFuncWrapper (cb);
- GCHandle gch = cb_wrapper.PersistUntilCalled ();
+ GCHandle gch = GCHandle.Alloc (cb);
gtk_clipboard_request_image(Handle, GtkSharp.ClipboardImageReceivedFuncWrapper.NativeDelegate, (IntPtr)gch);
}
@@ -277,8 +274,7 @@ namespace Gtk {
public void RequestText(Gtk.ClipboardTextReceivedFunc cb) {
Gtk.Application.AssertMainThread();
- GtkSharp.ClipboardTextReceivedFuncWrapper cb_wrapper = new GtkSharp.ClipboardTextReceivedFuncWrapper (cb);
- GCHandle gch = cb_wrapper.PersistUntilCalled ();
+ GCHandle gch = GCHandle.Alloc (cb);
gtk_clipboard_request_text(Handle, GtkSharp.ClipboardTextReceivedFuncWrapper.NativeDelegate, (IntPtr)gch);
}
diff --git a/gtk/generated/GtkSharp.ClipboardImageReceivedFuncNative.cs b/gtk/generated/GtkSharp.ClipboardImageReceivedFuncNative.cs
index ea10c3f99..c41fe0c0e 100644
--- a/gtk/generated/GtkSharp.ClipboardImageReceivedFuncNative.cs
+++ b/gtk/generated/GtkSharp.ClipboardImageReceivedFuncNative.cs
@@ -10,37 +10,22 @@ namespace GtkSharp {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void ClipboardImageReceivedFuncNative(IntPtr clipboard, IntPtr pixbuf, IntPtr data);
- internal class ClipboardImageReceivedFuncWrapper {
+ internal static class ClipboardImageReceivedFuncWrapper {
public static void NativeCallback (IntPtr clipboard, IntPtr pixbuf, IntPtr data)
{
try {
var gch = (GCHandle)data;
- var wrapper = (ClipboardImageReceivedFuncWrapper)gch.Target;
- wrapper.managed (GLib.Object.GetObject(clipboard) as Gtk.Clipboard, GLib.Object.GetObject(pixbuf) as Gdk.Pixbuf);
- if (wrapper.release_on_call)
+ var managed = (Gtk.ClipboardImageReceivedFunc)gch.Target;
+ managed (GLib.Object.GetObject(clipboard) as Gtk.Clipboard, GLib.Object.GetObject(pixbuf) as Gdk.Pixbuf);
gch.Free ();
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
}
- bool release_on_call = false;
-
- public GCHandle PersistUntilCalled ()
- {
- release_on_call = true;
- return GCHandle.Alloc (this);
- }
internal static ClipboardImageReceivedFuncNative NativeDelegate = new ClipboardImageReceivedFuncNative (NativeCallback);
- Gtk.ClipboardImageReceivedFunc managed;
-
- public ClipboardImageReceivedFuncWrapper (Gtk.ClipboardImageReceivedFunc managed)
- {
- this.managed = managed;
- }
-
}
#endregion
}
diff --git a/gtk/generated/GtkSharp.ClipboardReceivedFuncNative.cs b/gtk/generated/GtkSharp.ClipboardReceivedFuncNative.cs
index b04397668..1b35c2bb2 100644
--- a/gtk/generated/GtkSharp.ClipboardReceivedFuncNative.cs
+++ b/gtk/generated/GtkSharp.ClipboardReceivedFuncNative.cs
@@ -10,37 +10,22 @@ namespace GtkSharp {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void ClipboardReceivedFuncNative(IntPtr clipboard, IntPtr selection_data, IntPtr data);
- internal class ClipboardReceivedFuncWrapper {
+ internal static class ClipboardReceivedFuncWrapper {
public static void NativeCallback (IntPtr clipboard, IntPtr selection_data, IntPtr data)
{
try {
var gch = (GCHandle)data;
- var wrapper = (ClipboardReceivedFuncWrapper)gch.Target;
- wrapper.managed (GLib.Object.GetObject(clipboard) as Gtk.Clipboard, selection_data == IntPtr.Zero ? null : (Gtk.SelectionData) GLib.Opaque.GetOpaque (selection_data, typeof (Gtk.SelectionData), false));
- if (wrapper.release_on_call)
+ var managed = (Gtk.ClipboardReceivedFunc)gch.Target;
+ managed (GLib.Object.GetObject(clipboard) as Gtk.Clipboard, selection_data == IntPtr.Zero ? null : (Gtk.SelectionData) GLib.Opaque.GetOpaque (selection_data, typeof (Gtk.SelectionData), false));
gch.Free ();
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
}
- bool release_on_call = false;
-
- public GCHandle PersistUntilCalled ()
- {
- release_on_call = true;
- return GCHandle.Alloc (this);
- }
internal static ClipboardReceivedFuncNative NativeDelegate = new ClipboardReceivedFuncNative (NativeCallback);
- Gtk.ClipboardReceivedFunc managed;
-
- public ClipboardReceivedFuncWrapper (Gtk.ClipboardReceivedFunc managed)
- {
- this.managed = managed;
- }
-
}
#endregion
}
diff --git a/gtk/generated/GtkSharp.ClipboardTargetsReceivedFuncNative.cs b/gtk/generated/GtkSharp.ClipboardTargetsReceivedFuncNative.cs
index 39034f085..70233ec81 100644
--- a/gtk/generated/GtkSharp.ClipboardTargetsReceivedFuncNative.cs
+++ b/gtk/generated/GtkSharp.ClipboardTargetsReceivedFuncNative.cs
@@ -10,37 +10,22 @@ namespace GtkSharp {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void ClipboardTargetsReceivedFuncNative(IntPtr clipboard, IntPtr atoms, int n_atoms, IntPtr data);
- internal class ClipboardTargetsReceivedFuncWrapper {
+ internal static class ClipboardTargetsReceivedFuncWrapper {
public static void NativeCallback (IntPtr clipboard, IntPtr atoms, int n_atoms, IntPtr data)
{
try {
var gch = (GCHandle)data;
- var wrapper = (ClipboardTargetsReceivedFuncWrapper)gch.Target;
- wrapper.managed (GLib.Object.GetObject(clipboard) as Gtk.Clipboard, atoms == IntPtr.Zero ? null : (Gdk.Atom) GLib.Opaque.GetOpaque (atoms, typeof (Gdk.Atom), false), n_atoms);
- if (wrapper.release_on_call)
+ var managed = (Gtk.ClipboardTargetsReceivedFunc)gch.Target;
+ managed (GLib.Object.GetObject(clipboard) as Gtk.Clipboard, atoms == IntPtr.Zero ? null : (Gdk.Atom) GLib.Opaque.GetOpaque (atoms, typeof (Gdk.Atom), false), n_atoms);
gch.Free ();
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
}
- bool release_on_call = false;
-
- public GCHandle PersistUntilCalled ()
- {
- release_on_call = true;
- return GCHandle.Alloc (this);
- }
internal static ClipboardTargetsReceivedFuncNative NativeDelegate = new ClipboardTargetsReceivedFuncNative (NativeCallback);
- Gtk.ClipboardTargetsReceivedFunc managed;
-
- public ClipboardTargetsReceivedFuncWrapper (Gtk.ClipboardTargetsReceivedFunc managed)
- {
- this.managed = managed;
- }
-
}
#endregion
}
diff --git a/gtk/generated/GtkSharp.ClipboardTextReceivedFuncNative.cs b/gtk/generated/GtkSharp.ClipboardTextReceivedFuncNative.cs
index 72f3d6bd8..7da275bb3 100644
--- a/gtk/generated/GtkSharp.ClipboardTextReceivedFuncNative.cs
+++ b/gtk/generated/GtkSharp.ClipboardTextReceivedFuncNative.cs
@@ -10,37 +10,22 @@ namespace GtkSharp {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void ClipboardTextReceivedFuncNative(IntPtr clipboard, IntPtr text, IntPtr data);
- internal class ClipboardTextReceivedFuncWrapper {
+ internal static class ClipboardTextReceivedFuncWrapper {
public static void NativeCallback (IntPtr clipboard, IntPtr text, IntPtr data)
{
try {
var gch = (GCHandle)data;
- var wrapper = (ClipboardTextReceivedFuncWrapper)gch.Target;
- wrapper.managed (GLib.Object.GetObject(clipboard) as Gtk.Clipboard, GLib.Marshaller.Utf8PtrToString (text));
- if (wrapper.release_on_call)
+ var managed = (Gtk.ClipboardTextReceivedFunc)gch.Target;
+ managed (GLib.Object.GetObject(clipboard) as Gtk.Clipboard, GLib.Marshaller.Utf8PtrToString (text));
gch.Free ();
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
}
- bool release_on_call = false;
-
- public GCHandle PersistUntilCalled ()
- {
- release_on_call = true;
- return GCHandle.Alloc (this);
- }
internal static ClipboardTextReceivedFuncNative NativeDelegate = new ClipboardTextReceivedFuncNative (NativeCallback);
- Gtk.ClipboardTextReceivedFunc managed;
-
- public ClipboardTextReceivedFuncWrapper (Gtk.ClipboardTextReceivedFunc managed)
- {
- this.managed = managed;
- }
-
}
#endregion
}
diff --git a/gtk/generated/GtkSharp.MenuDetachFuncNative.cs b/gtk/generated/GtkSharp.MenuDetachFuncNative.cs
index b7faadaf5..04ec2d5aa 100644
--- a/gtk/generated/GtkSharp.MenuDetachFuncNative.cs
+++ b/gtk/generated/GtkSharp.MenuDetachFuncNative.cs
@@ -16,7 +16,6 @@ namespace GtkSharp {
{
try {
managed (GLib.Object.GetObject(attach_widget) as Gtk.Widget, GLib.Object.GetObject(menu) as Gtk.Menu);
- if (release_on_call)
gch.Free ();
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
diff --git a/gtk/generated/GtkSharp.MenuPositionFuncNative.cs b/gtk/generated/GtkSharp.MenuPositionFuncNative.cs
index d18fcfa3e..376d12947 100644
--- a/gtk/generated/GtkSharp.MenuPositionFuncNative.cs
+++ b/gtk/generated/GtkSharp.MenuPositionFuncNative.cs
@@ -10,15 +10,14 @@ namespace GtkSharp {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void MenuPositionFuncNative(IntPtr menu, out int x, out int y, out bool push_in, IntPtr user_data);
- internal class MenuPositionFuncWrapper {
+ internal static class MenuPositionFuncWrapper {
public static void NativeCallback (IntPtr menu, out int x, out int y, out bool push_in, IntPtr user_data)
{
try {
var gch = (GCHandle)user_data;
- var wrapper = (MenuPositionFuncWrapper)gch.Target;
- wrapper.managed (GLib.Object.GetObject(menu) as Gtk.Menu, out x, out y, out push_in);
- if (wrapper.release_on_call)
+ var managed = (Gtk.MenuPositionFunc)gch.Target;
+ managed (GLib.Object.GetObject(menu) as Gtk.Menu, out x, out y, out push_in);
gch.Free ();
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, true);
@@ -27,22 +26,8 @@ namespace GtkSharp {
}
}
- bool release_on_call = false;
-
- public GCHandle PersistUntilCalled ()
- {
- release_on_call = true;
- return GCHandle.Alloc (this);
- }
internal static MenuPositionFuncNative NativeDelegate = new MenuPositionFuncNative (NativeCallback);
- Gtk.MenuPositionFunc managed;
-
- public MenuPositionFuncWrapper (Gtk.MenuPositionFunc managed)
- {
- this.managed = managed;
- }
-
}
#endregion
}
diff --git a/gtk/generated/GtkSharp.PageSetupDoneFuncNative.cs b/gtk/generated/GtkSharp.PageSetupDoneFuncNative.cs
index a81b06ff2..9dea73cf6 100644
--- a/gtk/generated/GtkSharp.PageSetupDoneFuncNative.cs
+++ b/gtk/generated/GtkSharp.PageSetupDoneFuncNative.cs
@@ -10,37 +10,22 @@ namespace GtkSharp {
[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
internal delegate void PageSetupDoneFuncNative(IntPtr page_setup, IntPtr data);
- internal class PageSetupDoneFuncWrapper {
+ internal static class PageSetupDoneFuncWrapper {
public static void NativeCallback (IntPtr page_setup, IntPtr data)
{
try {
var gch = (GCHandle)data;
- var wrapper = (PageSetupDoneFuncWrapper)gch.Target;
- wrapper.managed (GLib.Object.GetObject(page_setup) as Gtk.PageSetup);
- if (wrapper.release_on_call)
+ var managed = (Gtk.PageSetupDoneFunc)gch.Target;
+ managed (GLib.Object.GetObject(page_setup) as Gtk.PageSetup);
gch.Free ();
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
}
- bool release_on_call = false;
-
- public GCHandle PersistUntilCalled ()
- {
- release_on_call = true;
- return GCHandle.Alloc (this);
- }
internal static PageSetupDoneFuncNative NativeDelegate = new PageSetupDoneFuncNative (NativeCallback);
- Gtk.PageSetupDoneFunc managed;
-
- public PageSetupDoneFuncWrapper (Gtk.PageSetupDoneFunc managed)
- {
- this.managed = managed;
- }
-
}
#endregion
}
diff --git a/gtk/generated/Menu.cs b/gtk/generated/Menu.cs
index d01e993ab..cf10d2643 100644
--- a/gtk/generated/Menu.cs
+++ b/gtk/generated/Menu.cs
@@ -314,8 +314,7 @@ detacher_wrapper.PersistUntilCalled ();
public void Popup(Gtk.Widget parent_menu_shell, Gtk.Widget parent_menu_item, Gtk.MenuPositionFunc func, uint button, uint activate_time) {
Gtk.Application.AssertMainThread();
- GtkSharp.MenuPositionFuncWrapper func_wrapper = new GtkSharp.MenuPositionFuncWrapper (func);
- GCHandle gch = func_wrapper.PersistUntilCalled ();
+ GCHandle gch = GCHandle.Alloc (func);
gtk_menu_popup(Handle, parent_menu_shell == null ? IntPtr.Zero : parent_menu_shell.Handle, parent_menu_item == null ? IntPtr.Zero : parent_menu_item.Handle, GtkSharp.MenuPositionFuncWrapper.NativeDelegate, (IntPtr)gch, button, activate_time);
}
diff --git a/gtk/generated/Print.cs b/gtk/generated/Print.cs
index bd20786bc..761ef1cbf 100644
--- a/gtk/generated/Print.cs
+++ b/gtk/generated/Print.cs
@@ -14,8 +14,7 @@ namespace Gtk {
public static void RunPageSetupDialogAsync(Gtk.Window parent, Gtk.PageSetup page_setup, Gtk.PrintSettings settings, Gtk.PageSetupDoneFunc done_cb) {
Gtk.Application.AssertMainThread();
- GtkSharp.PageSetupDoneFuncWrapper done_cb_wrapper = new GtkSharp.PageSetupDoneFuncWrapper (done_cb);
- GCHandle gch = done_cb_wrapper.PersistUntilCalled ();
+ GCHandle gch = GCHandle.Alloc (done_cb);
gtk_print_run_page_setup_dialog_async(parent == null ? IntPtr.Zero : parent.Handle, page_setup == null ? IntPtr.Zero : page_setup.Handle, settings == null ? IntPtr.Zero : settings.Handle, GtkSharp.PageSetupDoneFuncWrapper.NativeDelegate, (IntPtr)gch);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment