diff --git a/glib/Value.cs b/glib/Value.cs index 6a98d2a2f..be45c5ca5 100644 --- a/glib/Value.cs +++ b/glib/Value.cs @@ -576,6 +576,10 @@ namespace GLib { if (GType.Is (type, GType.Boxed) && !(val is IWrapper)) { MethodInfo mi = val.GetType ().GetMethod ("Update", BindingFlags.NonPublic | BindingFlags.Instance); IntPtr boxed_ptr = g_value_get_boxed (ref this); + + if (mi == null && !val.GetType ().IsDefined (typeof(StructLayoutAttribute), false)) + return; + if (mi == null) Marshal.StructureToPtr (val, boxed_ptr, false); else