diff --git a/Source/glib/Opaque.cs b/Source/glib/Opaque.cs index 2955ae8b0..664d5545e 100644 --- a/Source/glib/Opaque.cs +++ b/Source/glib/Opaque.cs @@ -39,18 +39,19 @@ public static Opaque GetOpaque (IntPtr o, Type type, bool owned) return null; Opaque opaque = (Opaque)Activator.CreateInstance (type, new object[] { o }); - if (owned) { - if (opaque.owned) { + if (opaque.owned) { // The constructor took a Ref it shouldn't have, so undo it opaque.Unref (o); - } + } + if (owned) { opaque.owned = true; - } else + } else { opaque = opaque.Copy (o); + } return opaque; } - + public Opaque () { owned = true;