From a5ea868d90b7c69dd617496221aa3611ca14b98c Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Wed, 19 Jan 2005 02:58:42 +0000 Subject: [PATCH] 2005-01-18 Mike Kestner * generator/Method.cs : deal with owned retvals. * generator/ReturnValue.cs : add Owned prop. * gnome/Gnome.metadata : mark Thumbnail.ScaleDownPixbuf return owned. [Fixes #71335] svn path=/trunk/gtk-sharp/; revision=39128 --- ChangeLog | 7 +++++++ generator/Method.cs | 2 +- generator/ReturnValue.cs | 6 ++++++ gnome/Gnome.metadata | 1 + 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b4fb42129..412a5e87f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-01-18 Mike Kestner + + * generator/Method.cs : deal with owned retvals. + * generator/ReturnValue.cs : add Owned prop. + * gnome/Gnome.metadata : mark Thumbnail.ScaleDownPixbuf return owned. + [Fixes #71335] + 2005-01-18 Mike Kestner * gtk/gtk-api.raw : regen. diff --git a/generator/Method.cs b/generator/Method.cs index c67dbfb0e..1ffa25d11 100644 --- a/generator/Method.cs +++ b/generator/Method.cs @@ -390,7 +390,7 @@ namespace GtkSharp.Generation { sw.WriteLine(indent + "\t\t\tif (raw_ret == IntPtr.Zero)"); sw.WriteLine(indent + "\t\t\t\tret = null;"); sw.WriteLine(indent + "\t\t\telse"); - sw.WriteLine(indent +"\t\t\t\tret = " + table.FromNativeReturn(retval.CType, "raw_ret") + ";"); + sw.WriteLine(indent +"\t\t\t\tret = " + table.FromNativeReturn(retval.CType, "raw_ret" + (retval.Owned ? ", true" : "")) + ";"); } else { sw.WriteLine(retval.MarshalType + " raw_ret = " + CName + call + ";"); sw.Write(indent + "\t\t\t"); diff --git a/generator/ReturnValue.cs b/generator/ReturnValue.cs index 035deda1e..702d3c277 100644 --- a/generator/ReturnValue.cs +++ b/generator/ReturnValue.cs @@ -63,6 +63,12 @@ namespace GtkSharp.Generation { } } + public bool Owned { + get { + return elem.GetAttribute ("owned") == "true"; + } + } + public string ToNativeType { get { return SymbolTable.Table.GetMarshalType (CType) + (IsArray ? "[]" : String.Empty); diff --git a/gnome/Gnome.metadata b/gnome/Gnome.metadata index 79f8435ed..946495566 100644 --- a/gnome/Gnome.metadata +++ b/gnome/Gnome.metadata @@ -20,6 +20,7 @@ const-gchar* const-guchar 1 + true 1 1 logo