From 24bbc054f2137c344bd56b5384cef9c121982c6c Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Mon, 7 Mar 2005 15:54:49 +0000 Subject: [PATCH] 2005-03-07 Mike Kestner * generator/MethodBody.cs : remove an unused var. * generator/ReturnValue.cs : privatize a couple props. Refactor the SymbolTable lookup logic to be generatable based. svn path=/trunk/gtk-sharp/; revision=41528 --- ChangeLog | 6 ++++++ generator/MethodBody.cs | 1 - generator/ReturnValue.cs | 31 ++++++++++++++++++++++++------- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 126f2fcd6..1a68686df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-03-07 Mike Kestner + + * generator/MethodBody.cs : remove an unused var. + * generator/ReturnValue.cs : privatize a couple props. Refactor the + SymbolTable lookup logic to be generatable based. + 2005-03-04 Mike Kestner * generator/ImportSignature.cs : out param handling fix. diff --git a/generator/MethodBody.cs b/generator/MethodBody.cs index 48c855ea3..99c8c76ae 100644 --- a/generator/MethodBody.cs +++ b/generator/MethodBody.cs @@ -158,7 +158,6 @@ namespace GtkSharp.Generation { IGeneratable gen = p.Generatable; - string name = p.Name; if (p.PassAs == "out" && p.CSType != p.MarshalType && !(gen is StructBase || gen is ByRefGen)) sw.WriteLine(indent + "\t\t\t" + p.Name + " = " + gen.FromNative (p.Name + "_as_native") + ";"); } diff --git a/generator/ReturnValue.cs b/generator/ReturnValue.cs index 7fe4001b1..7f0db32e0 100644 --- a/generator/ReturnValue.cs +++ b/generator/ReturnValue.cs @@ -41,17 +41,28 @@ namespace GtkSharp.Generation { public string CSType { get { - return SymbolTable.Table.GetCSType (CType) + (IsArray ? "[]" : String.Empty); + if (IGen == null) + return String.Empty; + return IGen.QualifiedName + (IsArray ? "[]" : String.Empty); } } - public string ElementType { + string ElementType { get { return elem == null ? String.Empty : elem.GetAttribute("element_type"); } } - public bool IsArray { + IGeneratable igen; + IGeneratable IGen { + get { + if (igen == null) + igen = SymbolTable.Table [CType]; + return igen; + } + } + + bool IsArray { get { return elem == null ? false : elem.HasAttribute ("array"); } @@ -65,11 +76,13 @@ namespace GtkSharp.Generation { public string MarshalType { get { - return SymbolTable.Table.GetMarshalReturnType (CType) + (IsArray ? "[]" : String.Empty); + if (IGen == null) + return String.Empty; + return IGen.MarshalReturnType + (IsArray ? "[]" : String.Empty); } } - public bool Owned { + bool Owned { get { return elem.GetAttribute ("owned") == "true"; } @@ -77,17 +90,21 @@ namespace GtkSharp.Generation { public string ToNativeType { get { - return SymbolTable.Table.GetToNativeReturnType (CType) + (IsArray ? "[]" : String.Empty); + if (IGen == null) + return String.Empty; + return IGen.ToNativeReturnType + (IsArray ? "[]" : String.Empty); } } public string FromNative (string var) { + if (IGen == null) + return String.Empty; if (Owned) var += ", true"; else if (ElementType != String.Empty) var += ", typeof (" + ElementType + ")"; - return SymbolTable.Table.FromNativeReturn (CType, var); + return IGen.FromNativeReturn (var); } public bool Validate ()