mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2025-01-11 21:35:39 +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>
|
2005-03-03 Mike Kestner <mkestner@novell.com>
|
||||||
|
|
||||||
* gdk/Gdk.metadata : remove unnecessary null_ok rules.
|
* gdk/Gdk.metadata : remove unnecessary null_ok rules.
|
||||||
|
|
|
@ -120,8 +120,8 @@ namespace GtkSharp.Generation {
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
Parameters parms = Parameters;
|
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_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.CSType == "void")) && (Name.Length > 3 && Name.Substring(0, 3) == "Set"));
|
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) + ")";
|
call = "(" + (IsStatic ? "" : container_type.CallByName () + (parms.Count > 0 ? ", " : "")) + Body.GetCallString (is_set) + ")";
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ namespace GtkSharp.Generation {
|
||||||
sw.Write("new ");
|
sw.Write("new ");
|
||||||
|
|
||||||
if (is_get || is_set) {
|
if (is_get || is_set) {
|
||||||
if (retval.CSType == "void")
|
if (retval.IsVoid)
|
||||||
sw.Write (Parameters.AccessorReturnType);
|
sw.Write (Parameters.AccessorReturnType);
|
||||||
else
|
else
|
||||||
sw.Write(retval.CSType);
|
sw.Write(retval.CSType);
|
||||||
|
@ -321,21 +321,12 @@ namespace GtkSharp.Generation {
|
||||||
Body.InitAccessor (sw, Signature, indent);
|
Body.InitAccessor (sw, Signature, indent);
|
||||||
Body.Initialize(gen_info, is_get, is_set, 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");
|
sw.Write(indent + "\t\t\t");
|
||||||
if (retval.MarshalType == "void") {
|
if (retval.IsVoid)
|
||||||
sw.WriteLine(CName + call + ";");
|
sw.WriteLine(CName + call + ";");
|
||||||
} else {
|
else {
|
||||||
sw.WriteLine(retval.MarshalType + " raw_ret = " + CName + call + ";");
|
sw.WriteLine(retval.MarshalType + " raw_ret = " + CName + call + ";");
|
||||||
sw.Write(indent + "\t\t\t");
|
sw.WriteLine(indent + "\t\t\t" + retval.CSType + " ret = " + retval.FromNative ("raw_ret") + ";");
|
||||||
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) + ";");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Body.Finish (sw, indent);
|
Body.Finish (sw, indent);
|
||||||
|
@ -343,7 +334,7 @@ namespace GtkSharp.Generation {
|
||||||
|
|
||||||
if (is_get && Parameters.Count > 0)
|
if (is_get && Parameters.Count > 0)
|
||||||
sw.WriteLine (indent + "\t\t\treturn " + Parameters.AccessorName + ";");
|
sw.WriteLine (indent + "\t\t\treturn " + Parameters.AccessorName + ";");
|
||||||
else if (retval.MarshalType != "void")
|
else if (!retval.IsVoid)
|
||||||
sw.WriteLine (indent + "\t\t\treturn ret;");
|
sw.WriteLine (indent + "\t\t\treturn ret;");
|
||||||
else if (IsAccessor)
|
else if (IsAccessor)
|
||||||
Body.FinishAccessor (sw, Signature, indent);
|
Body.FinishAccessor (sw, Signature, indent);
|
||||||
|
@ -353,7 +344,7 @@ namespace GtkSharp.Generation {
|
||||||
|
|
||||||
bool IsAccessor {
|
bool IsAccessor {
|
||||||
get {
|
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 {
|
public string MarshalType {
|
||||||
get {
|
get {
|
||||||
return SymbolTable.Table.GetMarshalReturnType (CType) + (IsArray ? "[]" : String.Empty);
|
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 ()
|
public bool Validate ()
|
||||||
{
|
{
|
||||||
if (MarshalType == "" || CSType == "") {
|
if (MarshalType == "" || CSType == "") {
|
||||||
|
|
Loading…
Reference in a new issue