From 0677e5ac7516bda0d009a06192801cc4725dd61a Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Thu, 3 Mar 2005 20:50:46 +0000 Subject: [PATCH] 2005-03-03 Mike Kestner * generator/ClassBase.cs : use "as" instead of a cast in FromNative. * generator/Method.cs : remove the if/else checks for Object retvals. * glib/Object.cs : return null immediately for NULL in GetObject. svn path=/trunk/gtk-sharp/; revision=41409 --- ChangeLog | 6 ++++++ generator/ClassBase.cs | 2 +- generator/Method.cs | 2 +- glib/Object.cs | 3 +++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index c84fc6d7e..c966ae9ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-03-03 Mike Kestner + + * generator/ClassBase.cs : use "as" instead of a cast in FromNative. + * generator/Method.cs : remove the if/else checks for Object retvals. + * glib/Object.cs : return null immediately for NULL in GetObject. + 2005-03-03 Mike Kestner * generator/ClassBase.cs : add null checking to CallByName. No sense diff --git a/generator/ClassBase.cs b/generator/ClassBase.cs index 412bbce19..66957f59f 100644 --- a/generator/ClassBase.cs +++ b/generator/ClassBase.cs @@ -164,7 +164,7 @@ namespace GtkSharp.Generation { public override string FromNative(string var) { - return "(" + QualifiedName + ") GLib.Object.GetObject(" + var + ")"; + return "GLib.Object.GetObject(" + var + ") as " + QualifiedName; } protected void GenProperties (GenerationInfo gen_info) diff --git a/generator/Method.cs b/generator/Method.cs index bc62990e8..ef0cd1e4a 100644 --- a/generator/Method.cs +++ b/generator/Method.cs @@ -327,7 +327,7 @@ namespace GtkSharp.Generation { sw.Write(indent + "\t\t\t"); if (retval.MarshalType == "void") { sw.WriteLine(CName + call + ";"); - } else if (ret_igen is ObjectGen || ret_igen is OpaqueGen) { + } else if (ret_igen is OpaqueGen) { sw.WriteLine(retval.MarshalType + " raw_ret = " + CName + call + ";"); sw.WriteLine(indent +"\t\t\t" + retval.CSType + " ret;"); sw.WriteLine(indent + "\t\t\tif (raw_ret == IntPtr.Zero)"); diff --git a/glib/Object.cs b/glib/Object.cs index ae2fbc78b..28a5a32fc 100644 --- a/glib/Object.cs +++ b/glib/Object.cs @@ -91,6 +91,9 @@ namespace GLib { public static Object GetObject(IntPtr o, bool owned_ref) { + if (o == IntPtr.Zero) + return null; + Object obj; WeakReference weak_ref = Objects[o] as WeakReference; if (weak_ref != null && weak_ref.IsAlive) {