mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2024-12-24 01:05:30 +00:00
2005-03-04 Mike Kestner <mkestner@novell.com>
* generator/Method.cs : refactor out some retval logic. * generator/ReturnValue.cs : add FromNative and IsVoid members. svn path=/trunk/gtk-sharp/; revision=41446
This commit is contained in:
parent
8b6cf6e5ea
commit
2fcb8f1b79
|
@ -1,3 +1,8 @@
|
|||
2005-03-04 Mike Kestner <mkestner@novell.com>
|
||||
|
||||
* generator/Method.cs : refactor out some retval logic.
|
||||
* generator/ReturnValue.cs : add FromNative and IsVoid members.
|
||||
|
||||
2005-03-03 Mike Kestner <mkestner@novell.com>
|
||||
|
||||
* gdk/Gdk.metadata : remove unnecessary null_ok rules.
|
||||
|
|
|
@ -120,8 +120,8 @@ namespace GtkSharp.Generation {
|
|||
return true;
|
||||
|
||||
Parameters parms = Parameters;
|
||||
is_get = ((((parms.IsAccessor && retval.CSType == "void") || (parms.Count == 0 && retval.CSType != "void")) || (parms.Count == 0 && retval.CSType != "void")) && Name.Length > 3 && (Name.StartsWith ("Get") || Name.StartsWith ("Is") || Name.StartsWith ("Has")));
|
||||
is_set = ((parms.IsAccessor || (parms.Count == 1 && retval.CSType == "void")) && (Name.Length > 3 && Name.Substring(0, 3) == "Set"));
|
||||
is_get = ((((parms.IsAccessor && retval.IsVoid) || (parms.Count == 0 && !retval.IsVoid)) || (parms.Count == 0 && !retval.IsVoid)) && Name.Length > 3 && (Name.StartsWith ("Get") || Name.StartsWith ("Is") || Name.StartsWith ("Has")));
|
||||
is_set = ((parms.IsAccessor || (parms.Count == 1 && retval.IsVoid)) && (Name.Length > 3 && Name.Substring(0, 3) == "Set"));
|
||||
|
||||
call = "(" + (IsStatic ? "" : container_type.CallByName () + (parms.Count > 0 ? ", " : "")) + Body.GetCallString (is_set) + ")";
|
||||
|
||||
|
@ -178,7 +178,7 @@ namespace GtkSharp.Generation {
|
|||
sw.Write("new ");
|
||||
|
||||
if (is_get || is_set) {
|
||||
if (retval.CSType == "void")
|
||||
if (retval.IsVoid)
|
||||
sw.Write (Parameters.AccessorReturnType);
|
||||
else
|
||||
sw.Write(retval.CSType);
|
||||
|
@ -321,21 +321,12 @@ namespace GtkSharp.Generation {
|
|||
Body.InitAccessor (sw, Signature, indent);
|
||||
Body.Initialize(gen_info, is_get, is_set, indent);
|
||||
|
||||
SymbolTable table = SymbolTable.Table;
|
||||
IGeneratable ret_igen = table [retval.CType];
|
||||
|
||||
sw.Write(indent + "\t\t\t");
|
||||
if (retval.MarshalType == "void") {
|
||||
if (retval.IsVoid)
|
||||
sw.WriteLine(CName + call + ";");
|
||||
} else {
|
||||
else {
|
||||
sw.WriteLine(retval.MarshalType + " raw_ret = " + CName + call + ";");
|
||||
sw.Write(indent + "\t\t\t");
|
||||
string raw_parms = "raw_ret";
|
||||
if (retval.ElementType != String.Empty)
|
||||
raw_parms += ", typeof (" + retval.ElementType + ")";
|
||||
else if (retval.Owned)
|
||||
raw_parms += ", true";
|
||||
sw.WriteLine(retval.CSType + " ret = " + table.FromNativeReturn(retval.CType, raw_parms) + ";");
|
||||
sw.WriteLine(indent + "\t\t\t" + retval.CSType + " ret = " + retval.FromNative ("raw_ret") + ";");
|
||||
}
|
||||
|
||||
Body.Finish (sw, indent);
|
||||
|
@ -343,7 +334,7 @@ namespace GtkSharp.Generation {
|
|||
|
||||
if (is_get && Parameters.Count > 0)
|
||||
sw.WriteLine (indent + "\t\t\treturn " + Parameters.AccessorName + ";");
|
||||
else if (retval.MarshalType != "void")
|
||||
else if (!retval.IsVoid)
|
||||
sw.WriteLine (indent + "\t\t\treturn ret;");
|
||||
else if (IsAccessor)
|
||||
Body.FinishAccessor (sw, Signature, indent);
|
||||
|
@ -353,7 +344,7 @@ namespace GtkSharp.Generation {
|
|||
|
||||
bool IsAccessor {
|
||||
get {
|
||||
return retval.CSType == "void" && Signature.IsAccessor;
|
||||
return retval.IsVoid && Signature.IsAccessor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,6 +57,12 @@ namespace GtkSharp.Generation {
|
|||
}
|
||||
}
|
||||
|
||||
public bool IsVoid {
|
||||
get {
|
||||
return CSType == "void";
|
||||
}
|
||||
}
|
||||
|
||||
public string MarshalType {
|
||||
get {
|
||||
return SymbolTable.Table.GetMarshalReturnType (CType) + (IsArray ? "[]" : String.Empty);
|
||||
|
@ -75,6 +81,15 @@ namespace GtkSharp.Generation {
|
|||
}
|
||||
}
|
||||
|
||||
public string FromNative (string var)
|
||||
{
|
||||
if (Owned)
|
||||
var += ", true";
|
||||
else if (ElementType != String.Empty)
|
||||
var += ", typeof (" + ElementType + ")";
|
||||
return SymbolTable.Table.FromNativeReturn (CType, var);
|
||||
}
|
||||
|
||||
public bool Validate ()
|
||||
{
|
||||
if (MarshalType == "" || CSType == "") {
|
||||
|
|
Loading…
Reference in a new issue