From f38c129f6d2c780ba391cf90edf717c0b958cd3c Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Wed, 7 Jan 2009 17:10:08 +0000 Subject: [PATCH] 2009-01-07 Mike Kestner * generator/MethodBody.cs: avoid null ref when passing null to destroy notified callback parameters. [Fixes #464120] svn path=/trunk/gtk-sharp/; revision=122677 --- ChangeLog | 5 +++++ generator/MethodBody.cs | 5 +---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 06af10836..185622526 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-01-07 Mike Kestner + + * generator/MethodBody.cs: avoid null ref when passing null to + destroy notified callback parameters. [Fixes #464120] + 2009-01-06 Mike Kestner * configure.in.in: update to use mdoc. diff --git a/generator/MethodBody.cs b/generator/MethodBody.cs index d4dbde087..cee70790f 100644 --- a/generator/MethodBody.cs +++ b/generator/MethodBody.cs @@ -103,16 +103,13 @@ namespace GtkSharp.Generation { string wrapper = cbgen.GenWrapper(gen_info); switch (p.Scope) { case "notified": - sw.WriteLine (indent + "\t\t\t{0} {1}_wrapper;", wrapper, name); + sw.WriteLine (indent + "\t\t\t{0} {1}_wrapper = new {0} ({1});", wrapper, name); sw.WriteLine (indent + "\t\t\tIntPtr {0};", parameters [i + 1].Name); sw.WriteLine (indent + "\t\t\t{0} {1};", parameters [i + 2].CSType, parameters [i + 2].Name); sw.WriteLine (indent + "\t\t\tif ({0} == null) {{", name); - sw.WriteLine (indent + "\t\t\t\t{0}_wrapper = null;", name); sw.WriteLine (indent + "\t\t\t\t{0} = IntPtr.Zero;", parameters [i + 1].Name); sw.WriteLine (indent + "\t\t\t\t{0} = null;", parameters [i + 2].Name); sw.WriteLine (indent + "\t\t\t} else {"); - - sw.WriteLine (indent + "\t\t\t\t{0}_wrapper = new {1} ({0});", name, wrapper); sw.WriteLine (indent + "\t\t\t\t{0} = (IntPtr) GCHandle.Alloc ({1}_wrapper);", parameters [i + 1].Name, name); sw.WriteLine (indent + "\t\t\t\t{0} = GLib.DestroyHelper.NotifyHandler;", parameters [i + 2].Name, parameters [i + 2].CSType); sw.WriteLine (indent + "\t\t\t}");