From d467cce6e6266ffacfa8f44ba3e85cdb97a9ce50 Mon Sep 17 00:00:00 2001 From: Bertrand Lorentz Date: Sat, 3 Nov 2012 15:46:06 +0100 Subject: [PATCH] generator: Move some classes from Parameters.cs into their own file This is just code being moved around, there are no real code changes. --- generator/ArrayParameter.cs | 166 ++++++++++++ generator/Makefile.am | 2 + generator/Parameter.cs | 380 ++++++++++++++++++++++++++++ generator/Parameters.cs | 492 ------------------------------------ generator/generator.csproj | 2 + 5 files changed, 550 insertions(+), 492 deletions(-) create mode 100644 generator/ArrayParameter.cs create mode 100644 generator/Parameter.cs diff --git a/generator/ArrayParameter.cs b/generator/ArrayParameter.cs new file mode 100644 index 000000000..f8965bdc3 --- /dev/null +++ b/generator/ArrayParameter.cs @@ -0,0 +1,166 @@ +// GtkSharp.Generation.Parameters.cs - The Parameters Generation Class. +// +// Author: Mike Kestner +// +// Copyright (c) 2001-2003 Mike Kestner +// Copyright (c) 2004 Novell, Inc. +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of version 2 of the GNU General Public +// License as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + + +namespace GtkSharp.Generation { + + using System; + using System.Collections; + using System.Xml; + + public class ArrayParameter : Parameter { + + bool null_terminated; + + public ArrayParameter (XmlElement elem) : base (elem) + { + null_terminated = elem.GetAttributeAsBoolean ("null_term_array"); + } + + public override string MarshalType { + get { + if (Generatable is StructBase) + return CSType; + else + return base.MarshalType; + } + } + + bool NullTerminated { + get { + return null_terminated; + } + } + + public override string[] Prepare { + get { + if (CSType == MarshalType) + return new string [0]; + + ArrayList result = new ArrayList (); + result.Add (String.Format ("int cnt_{0} = {0} == null ? 0 : {0}.Length;", CallName)); + result.Add (String.Format ("{0}[] native_{1} = new {0} [cnt_{1}" + (NullTerminated ? " + 1" : "") + "];", MarshalType.TrimEnd('[', ']'), CallName)); + result.Add (String.Format ("for (int i = 0; i < cnt_{0}; i++)", CallName)); + IGeneratable gen = Generatable; + if (gen is IManualMarshaler) + result.Add (String.Format ("\tnative_{0} [i] = {1};", CallName, (gen as IManualMarshaler).AllocNative (CallName + "[i]"))); + else + result.Add (String.Format ("\tnative_{0} [i] = {1};", CallName, gen.CallByName (CallName + "[i]"))); + + if (NullTerminated) + result.Add (String.Format ("native_{0} [cnt_{0}] = IntPtr.Zero;", CallName)); + return (string[]) result.ToArray (typeof (string)); + } + } + + public override string CallString { + get { + if (CSType != MarshalType) + return "native_" + CallName; + else + return CallName; + } + } + + public override string[] Finish { + get { + if (CSType == MarshalType) + return new string [0]; + + IGeneratable gen = Generatable; + if (gen is IManualMarshaler) { + string [] result = new string [4]; + result [0] = "for (int i = 0; i < native_" + CallName + ".Length" + (NullTerminated ? " - 1" : "") + "; i++) {"; + result [1] = "\t" + CallName + " [i] = " + Generatable.FromNative ("native_" + CallName + "[i]") + ";"; + result [2] = "\t" + (gen as IManualMarshaler).ReleaseNative ("native_" + CallName + "[i]") + ";"; + result [3] = "}"; + return result; + } + + return new string [0]; + } + } + } + + public class ArrayCountPair : ArrayParameter { + + XmlElement count_elem; + bool invert; + + public ArrayCountPair (XmlElement array_elem, XmlElement count_elem, bool invert) : base (array_elem) + { + this.count_elem = count_elem; + this.invert = invert; + } + + string CountNativeType { + get { + return SymbolTable.Table.GetMarshalType(count_elem.GetAttribute("type")); + } + } + + string CountType { + get { + return SymbolTable.Table.GetCSType(count_elem.GetAttribute("type")); + } + } + + string CountCast { + get { + if (CountType == "int") + return String.Empty; + else + return "(" + CountType + ") "; + } + } + + string CountName { + get { + return SymbolTable.Table.MangleName (count_elem.GetAttribute("name")); + } + } + + string CallCount (string name) + { + string result = CountCast + "(" + name + " == null ? 0 : " + name + ".Length)"; + IGeneratable gen = SymbolTable.Table[count_elem.GetAttribute("type")]; + return gen.CallByName (result); + } + + public override string CallString { + get { + if (invert) + return CallCount (CallName) + ", " + base.CallString; + else + return base.CallString + ", " + CallCount (CallName); + } + } + + public override string NativeSignature { + get { + if (invert) + return CountNativeType + " " + CountName + ", " + MarshalType + " " + Name; + else + return MarshalType + " " + Name + ", " + CountNativeType + " " + CountName; + } + } + } +} diff --git a/generator/Makefile.am b/generator/Makefile.am index 93bb48465..7ef6a8eef 100644 --- a/generator/Makefile.am +++ b/generator/Makefile.am @@ -8,6 +8,7 @@ references = sources = \ AliasGen.cs \ + ArrayParameter.cs \ BoxedGen.cs \ ByRefGen.cs \ CallbackGen.cs \ @@ -46,6 +47,7 @@ sources = \ ObjectGen.cs \ OpaqueGen.cs \ OwnableGen.cs \ + Parameter.cs \ Parameters.cs \ Parser.cs \ Property.cs \ diff --git a/generator/Parameter.cs b/generator/Parameter.cs new file mode 100644 index 000000000..2196f4bc4 --- /dev/null +++ b/generator/Parameter.cs @@ -0,0 +1,380 @@ +// GtkSharp.Generation.Parameters.cs - The Parameters Generation Class. +// +// Author: Mike Kestner +// +// Copyright (c) 2001-2003 Mike Kestner +// Copyright (c) 2004 Novell, Inc. +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of version 2 of the GNU General Public +// License as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + + +namespace GtkSharp.Generation { + + using System; + using System.Collections; + using System.Xml; + + public class Parameter { + + private XmlElement elem; + + public Parameter (XmlElement e) + { + elem = e; + } + + string call_name; + public string CallName { + get { + if (call_name == null) + return Name; + else + return call_name; + } + set { + call_name = value; + } + } + + public string CType { + get { + string type = elem.GetAttribute("type"); + if (type == "void*") + type = "gpointer"; + return type; + } + } + + public string CSType { + get { + string cstype = SymbolTable.Table.GetCSType( elem.GetAttribute("type")); + if (cstype == "void") + cstype = "System.IntPtr"; + if (IsArray) { + if (IsParams) + cstype = "params " + cstype; + cstype += "[]"; + cstype = cstype.Replace ("ref ", ""); + } + return cstype; + } + } + + public IGeneratable Generatable { + get { + return SymbolTable.Table[CType]; + } + } + + public bool IsArray { + get { + return elem.GetAttributeAsBoolean ("array") || elem.GetAttributeAsBoolean ("null_term_array"); + } + } + + public bool IsEllipsis { + get { + return elem.GetAttributeAsBoolean ("ellipsis"); + } + } + + bool is_count; + bool is_count_set; + public bool IsCount { + get { + if (is_count_set) + return is_count; + + if (Name.StartsWith("n_")) + switch (CSType) { + case "int": + case "uint": + case "long": + case "ulong": + case "short": + case "ushort": + return true; + default: + return false; + } + else + return false; + } + set { + is_count_set = true; + is_count = value; + } + } + + public bool IsDestroyNotify { + get { + return CType == "GDestroyNotify"; + } + } + + public bool IsLength { + get { + if (Name.EndsWith("len") || Name.EndsWith("length")) + switch (CSType) { + case "int": + case "uint": + case "long": + case "ulong": + case "short": + case "ushort": + return true; + default: + return false; + } + else + return false; + } + } + + public bool IsParams { + get { + return elem.HasAttribute("params"); + } + } + + public bool IsString { + get { + return (CSType == "string"); + } + } + + public bool IsUserData { + get { + return CSType == "IntPtr" && (Name.EndsWith ("data") || Name.EndsWith ("data_or_owner")); + } + } + + public virtual string MarshalType { + get { + string type = SymbolTable.Table.GetMarshalType( elem.GetAttribute("type")); + if (type == "void" || Generatable is IManualMarshaler) + type = "IntPtr"; + if (IsArray) { + type += "[]"; + type = type.Replace ("ref ", ""); + } + return type; + } + } + + public string Name { + get { + return SymbolTable.Table.MangleName (elem.GetAttribute("name")); + } + } + + public bool Owned { + get { + return elem.GetAttribute ("owned") == "true"; + } + } + + public virtual string NativeSignature { + get { + string sig = MarshalType + " " + Name; + if (PassAs != String.Empty) + sig = PassAs + " " + sig; + return sig; + } + } + + public string PropertyName { + get { + return elem.GetAttribute("property_name"); + } + } + + string pass_as; + + public string PassAs { + get { + if (pass_as != null) + return pass_as; + + if (elem.HasAttribute ("pass_as")) + return elem.GetAttribute ("pass_as"); + + if (IsArray || CSType.EndsWith ("IntPtr")) + return ""; + + if (CType.EndsWith ("*") && (Generatable is SimpleGen || Generatable is EnumGen)) + return "out"; + + return ""; + } + set { + pass_as = value; + } + } + + string scope; + public string Scope { + get { + if (scope == null) + scope = elem.GetAttribute ("scope"); + return scope; + } + set { + scope = value; + } + } + + public virtual string[] Prepare { + get { + IGeneratable gen = Generatable; + if (gen is IManualMarshaler) { + string result = "IntPtr native_" + CallName; + if (PassAs != "out") + result += " = " + (gen as IManualMarshaler).AllocNative (CallName); + return new string [] { result + ";" }; + } else if (PassAs == "out" && CSType != MarshalType) { + return new string [] { gen.MarshalType + " native_" + CallName + ";" }; + } else if (PassAs == "ref" && CSType != MarshalType) { + return new string [] { gen.MarshalType + " native_" + CallName + " = (" + gen.MarshalType + ") " + CallName + ";" }; + } + + return new string [0]; + } + } + + public virtual string CallString { + get { + string call_parm; + + IGeneratable gen = Generatable; + if (gen is CallbackGen) + return SymbolTable.Table.CallByName (CType, CallName + "_wrapper"); + else if (PassAs != String.Empty) { + call_parm = PassAs + " "; + if (CSType != MarshalType) + call_parm += "native_"; + call_parm += CallName; + } else if (gen is IManualMarshaler) + call_parm = "native_" + CallName; + else if (gen is ObjectBase) + call_parm = (gen as ObjectBase).CallByName (CallName, Owned); + else + call_parm = gen.CallByName (CallName); + + return call_parm; + } + } + + public virtual string[] Finish { + get { + IGeneratable gen = Generatable; + if (gen is IManualMarshaler) { + string[] result = new string [PassAs == "ref" ? 2 : 1]; + int i = 0; + if (PassAs != String.Empty) + result [i++] = CallName + " = " + Generatable.FromNative ("native_" + CallName) + ";"; + if (PassAs != "out") + result [i] = (gen as IManualMarshaler).ReleaseNative ("native_" + CallName) + ";"; + return result; + } else if (PassAs != String.Empty && MarshalType != CSType) + if (gen is IOwnable) + return new string [] { CallName + " = " + (gen as IOwnable).FromNative ("native_" + CallName, Owned) + ";" }; + else + return new string [] { CallName + " = " + gen.FromNative ("native_" + CallName) + ";" }; + return new string [0]; + } + } + + public string FromNative (string var) + { + if (Generatable == null) + return String.Empty; + else if (Generatable is IOwnable) + return ((IOwnable)Generatable).FromNative (var, Owned); + else + return Generatable.FromNative (var); + } + + public string StudlyName { + get { + string name = elem.GetAttribute("name"); + string[] segs = name.Split('_'); + string studly = ""; + foreach (string s in segs) { + if (s.Trim () == "") + continue; + studly += (s.Substring(0,1).ToUpper() + s.Substring(1)); + } + return studly; + + } + } + } + + public class ErrorParameter : Parameter { + + public ErrorParameter (XmlElement elem) : base (elem) + { + PassAs = "out"; + } + + public override string CallString { + get { + return "out error"; + } + } + } + + public class StructParameter : Parameter { + + public StructParameter (XmlElement elem) : base (elem) {} + + public override string MarshalType { + get { + return "IntPtr"; + } + } + + public override string[] Prepare { + get { + if (PassAs == "out") + return new string [] { "IntPtr native_" + CallName + " = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (" + Generatable.QualifiedName + ")));"}; + else + return new string [] { "IntPtr native_" + CallName + " = " + (Generatable as IManualMarshaler).AllocNative (CallName) + ";"}; + } + } + + public override string CallString { + get { + return "native_" + CallName; + } + } + + public override string[] Finish { + get { + string[] result = new string [2]; + result [0] = CallName + " = " + FromNative ("native_" + CallName) + ";"; + result [1] = (Generatable as IManualMarshaler).ReleaseNative ("native_" + CallName) + ";"; + return result; + } + } + + public override string NativeSignature { + get { + return "IntPtr " + CallName; + } + } + } +} diff --git a/generator/Parameters.cs b/generator/Parameters.cs index 1974dff8a..2fa71ade3 100644 --- a/generator/Parameters.cs +++ b/generator/Parameters.cs @@ -24,499 +24,8 @@ namespace GtkSharp.Generation { using System; using System.Collections; - using System.IO; using System.Xml; - public class Parameter { - - private XmlElement elem; - - public Parameter (XmlElement e) - { - elem = e; - } - - string call_name; - public string CallName { - get { - if (call_name == null) - return Name; - else - return call_name; - } - set { - call_name = value; - } - } - - public string CType { - get { - string type = elem.GetAttribute("type"); - if (type == "void*") - type = "gpointer"; - return type; - } - } - - public string CSType { - get { - string cstype = SymbolTable.Table.GetCSType( elem.GetAttribute("type")); - if (cstype == "void") - cstype = "System.IntPtr"; - if (IsArray) { - if (IsParams) - cstype = "params " + cstype; - cstype += "[]"; - cstype = cstype.Replace ("ref ", ""); - } - return cstype; - } - } - - public IGeneratable Generatable { - get { - return SymbolTable.Table[CType]; - } - } - - public bool IsArray { - get { - return elem.GetAttributeAsBoolean ("array") || elem.GetAttributeAsBoolean ("null_term_array"); - } - } - - public bool IsEllipsis { - get { - return elem.GetAttributeAsBoolean ("ellipsis"); - } - } - - bool is_count; - bool is_count_set; - public bool IsCount { - get { - if (is_count_set) - return is_count; - - if (Name.StartsWith("n_")) - switch (CSType) { - case "int": - case "uint": - case "long": - case "ulong": - case "short": - case "ushort": - return true; - default: - return false; - } - else - return false; - } - set { - is_count_set = true; - is_count = value; - } - } - - public bool IsDestroyNotify { - get { - return CType == "GDestroyNotify"; - } - } - - public bool IsLength { - get { - if (Name.EndsWith("len") || Name.EndsWith("length")) - switch (CSType) { - case "int": - case "uint": - case "long": - case "ulong": - case "short": - case "ushort": - return true; - default: - return false; - } - else - return false; - } - } - - public bool IsParams { - get { - return elem.HasAttribute("params"); - } - } - - public bool IsString { - get { - return (CSType == "string"); - } - } - - public bool IsUserData { - get { - return CSType == "IntPtr" && (Name.EndsWith ("data") || Name.EndsWith ("data_or_owner")); - } - } - - public virtual string MarshalType { - get { - string type = SymbolTable.Table.GetMarshalType( elem.GetAttribute("type")); - if (type == "void" || Generatable is IManualMarshaler) - type = "IntPtr"; - if (IsArray) { - type += "[]"; - type = type.Replace ("ref ", ""); - } - return type; - } - } - - public string Name { - get { - return SymbolTable.Table.MangleName (elem.GetAttribute("name")); - } - } - - public bool Owned { - get { - return elem.GetAttribute ("owned") == "true"; - } - } - - public virtual string NativeSignature { - get { - string sig = MarshalType + " " + Name; - if (PassAs != String.Empty) - sig = PassAs + " " + sig; - return sig; - } - } - - public string PropertyName { - get { - return elem.GetAttribute("property_name"); - } - } - - string pass_as; - - public string PassAs { - get { - if (pass_as != null) - return pass_as; - - if (elem.HasAttribute ("pass_as")) - return elem.GetAttribute ("pass_as"); - - if (IsArray || CSType.EndsWith ("IntPtr")) - return ""; - - if (CType.EndsWith ("*") && (Generatable is SimpleGen || Generatable is EnumGen)) - return "out"; - - return ""; - } - set { - pass_as = value; - } - } - - string scope; - public string Scope { - get { - if (scope == null) - scope = elem.GetAttribute ("scope"); - return scope; - } - set { - scope = value; - } - } - - public virtual string[] Prepare { - get { - IGeneratable gen = Generatable; - if (gen is IManualMarshaler) { - string result = "IntPtr native_" + CallName; - if (PassAs != "out") - result += " = " + (gen as IManualMarshaler).AllocNative (CallName); - return new string [] { result + ";" }; - } else if (PassAs == "out" && CSType != MarshalType) { - return new string [] { gen.MarshalType + " native_" + CallName + ";" }; - } else if (PassAs == "ref" && CSType != MarshalType) { - return new string [] { gen.MarshalType + " native_" + CallName + " = (" + gen.MarshalType + ") " + CallName + ";" }; - } - - return new string [0]; - } - } - - public virtual string CallString { - get { - string call_parm; - - IGeneratable gen = Generatable; - if (gen is CallbackGen) - return SymbolTable.Table.CallByName (CType, CallName + "_wrapper"); - else if (PassAs != String.Empty) { - call_parm = PassAs + " "; - if (CSType != MarshalType) - call_parm += "native_"; - call_parm += CallName; - } else if (gen is IManualMarshaler) - call_parm = "native_" + CallName; - else if (gen is ObjectBase) - call_parm = (gen as ObjectBase).CallByName (CallName, Owned); - else - call_parm = gen.CallByName (CallName); - - return call_parm; - } - } - - public virtual string[] Finish { - get { - IGeneratable gen = Generatable; - if (gen is IManualMarshaler) { - string[] result = new string [PassAs == "ref" ? 2 : 1]; - int i = 0; - if (PassAs != String.Empty) - result [i++] = CallName + " = " + Generatable.FromNative ("native_" + CallName) + ";"; - if (PassAs != "out") - result [i] = (gen as IManualMarshaler).ReleaseNative ("native_" + CallName) + ";"; - return result; - } else if (PassAs != String.Empty && MarshalType != CSType) - if (gen is IOwnable) - return new string [] { CallName + " = " + (gen as IOwnable).FromNative ("native_" + CallName, Owned) + ";" }; - else - return new string [] { CallName + " = " + gen.FromNative ("native_" + CallName) + ";" }; - return new string [0]; - } - } - - public string FromNative (string var) - { - if (Generatable == null) - return String.Empty; - else if (Generatable is IOwnable) - return ((IOwnable)Generatable).FromNative (var, Owned); - else - return Generatable.FromNative (var); - } - - public string StudlyName { - get { - string name = elem.GetAttribute("name"); - string[] segs = name.Split('_'); - string studly = ""; - foreach (string s in segs) { - if (s.Trim () == "") - continue; - studly += (s.Substring(0,1).ToUpper() + s.Substring(1)); - } - return studly; - - } - } - } - - public class ArrayParameter : Parameter { - - bool null_terminated; - - public ArrayParameter (XmlElement elem) : base (elem) - { - null_terminated = elem.GetAttributeAsBoolean ("null_term_array"); - } - - public override string MarshalType { - get { - if (Generatable is StructBase) - return CSType; - else - return base.MarshalType; - } - } - - bool NullTerminated { - get { - return null_terminated; - } - } - - public override string[] Prepare { - get { - if (CSType == MarshalType) - return new string [0]; - - ArrayList result = new ArrayList (); - result.Add (String.Format ("int cnt_{0} = {0} == null ? 0 : {0}.Length;", CallName)); - result.Add (String.Format ("{0}[] native_{1} = new {0} [cnt_{1}" + (NullTerminated ? " + 1" : "") + "];", MarshalType.TrimEnd('[', ']'), CallName)); - result.Add (String.Format ("for (int i = 0; i < cnt_{0}; i++)", CallName)); - IGeneratable gen = Generatable; - if (gen is IManualMarshaler) - result.Add (String.Format ("\tnative_{0} [i] = {1};", CallName, (gen as IManualMarshaler).AllocNative (CallName + "[i]"))); - else - result.Add (String.Format ("\tnative_{0} [i] = {1};", CallName, gen.CallByName (CallName + "[i]"))); - - if (NullTerminated) - result.Add (String.Format ("native_{0} [cnt_{0}] = IntPtr.Zero;", CallName)); - return (string[]) result.ToArray (typeof (string)); - } - } - - public override string CallString { - get { - if (CSType != MarshalType) - return "native_" + CallName; - else - return CallName; - } - } - - public override string[] Finish { - get { - if (CSType == MarshalType) - return new string [0]; - - IGeneratable gen = Generatable; - if (gen is IManualMarshaler) { - string [] result = new string [4]; - result [0] = "for (int i = 0; i < native_" + CallName + ".Length" + (NullTerminated ? " - 1" : "") + "; i++) {"; - result [1] = "\t" + CallName + " [i] = " + Generatable.FromNative ("native_" + CallName + "[i]") + ";"; - result [2] = "\t" + (gen as IManualMarshaler).ReleaseNative ("native_" + CallName + "[i]") + ";"; - result [3] = "}"; - return result; - } - - return new string [0]; - } - } - } - - public class ArrayCountPair : ArrayParameter { - - XmlElement count_elem; - bool invert; - - public ArrayCountPair (XmlElement array_elem, XmlElement count_elem, bool invert) : base (array_elem) - { - this.count_elem = count_elem; - this.invert = invert; - } - - string CountNativeType { - get { - return SymbolTable.Table.GetMarshalType(count_elem.GetAttribute("type")); - } - } - - string CountType { - get { - return SymbolTable.Table.GetCSType(count_elem.GetAttribute("type")); - } - } - - string CountCast { - get { - if (CountType == "int") - return String.Empty; - else - return "(" + CountType + ") "; - } - } - - string CountName { - get { - return SymbolTable.Table.MangleName (count_elem.GetAttribute("name")); - } - } - - string CallCount (string name) - { - string result = CountCast + "(" + name + " == null ? 0 : " + name + ".Length)"; - IGeneratable gen = SymbolTable.Table[count_elem.GetAttribute("type")]; - return gen.CallByName (result); - } - - public override string CallString { - get { - if (invert) - return CallCount (CallName) + ", " + base.CallString; - else - return base.CallString + ", " + CallCount (CallName); - } - } - - public override string NativeSignature { - get { - if (invert) - return CountNativeType + " " + CountName + ", " + MarshalType + " " + Name; - else - return MarshalType + " " + Name + ", " + CountNativeType + " " + CountName; - } - } - } - - public class ErrorParameter : Parameter { - - public ErrorParameter (XmlElement elem) : base (elem) - { - PassAs = "out"; - } - - public override string CallString { - get { - return "out error"; - } - } - } - - public class StructParameter : Parameter { - - public StructParameter (XmlElement elem) : base (elem) {} - - public override string MarshalType { - get { - return "IntPtr"; - } - } - - public override string[] Prepare { - get { - if (PassAs == "out") - return new string [] { "IntPtr native_" + CallName + " = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (" + Generatable.QualifiedName + ")));"}; - else - return new string [] { "IntPtr native_" + CallName + " = " + (Generatable as IManualMarshaler).AllocNative (CallName) + ";"}; - } - } - - public override string CallString { - get { - return "native_" + CallName; - } - } - - public override string[] Finish { - get { - string[] result = new string [2]; - result [0] = CallName + " = " + FromNative ("native_" + CallName) + ";"; - result [1] = (Generatable as IManualMarshaler).ReleaseNative ("native_" + CallName) + ";"; - return result; - } - } - - public override string NativeSignature { - get { - return "IntPtr " + CallName; - } - } - } - public class Parameters : IEnumerable { ArrayList param_list = new ArrayList (); @@ -756,4 +265,3 @@ namespace GtkSharp.Generation { } } } - diff --git a/generator/generator.csproj b/generator/generator.csproj index ccf39f985..5996220db 100644 --- a/generator/generator.csproj +++ b/generator/generator.csproj @@ -88,6 +88,8 @@ + +