diff options
Diffstat (limited to 'modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators')
| -rw-r--r-- | modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalType.cs | 3 | ||||
| -rw-r--r-- | modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalUtils.cs | 24 |
2 files changed, 10 insertions, 17 deletions
diff --git a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalType.cs b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalType.cs index 3b7a50e7a6..e967cbe662 100644 --- a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalType.cs +++ b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalType.cs @@ -53,7 +53,6 @@ namespace Godot.SourceGenerators Vector3Array, ColorArray, GodotObjectOrDerivedArray, - SystemObjectArray, SystemArrayOfSupportedType, // Generics @@ -66,7 +65,7 @@ namespace Godot.SourceGenerators GenericIEnumerable, // Variant - SystemObject, + Variant, // Classes GodotObjectOrDerived, diff --git a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalUtils.cs b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalUtils.cs index cd4c8ff828..d132b6304f 100644 --- a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalUtils.cs +++ b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalUtils.cs @@ -86,7 +86,6 @@ namespace Godot.SourceGenerators MarshalType.Vector3Array => VariantType.PackedVector3Array, MarshalType.ColorArray => VariantType.PackedColorArray, MarshalType.GodotObjectOrDerivedArray => VariantType.Array, - MarshalType.SystemObjectArray => VariantType.Array, MarshalType.SystemArrayOfSupportedType => VariantType.Array, MarshalType.GodotGenericDictionary => VariantType.Dictionary, MarshalType.GodotGenericArray => VariantType.Array, @@ -95,7 +94,7 @@ namespace Godot.SourceGenerators MarshalType.GenericIDictionary => VariantType.Dictionary, MarshalType.GenericICollection => VariantType.Array, MarshalType.GenericIEnumerable => VariantType.Array, - MarshalType.SystemObject => VariantType.Nil, + MarshalType.Variant => VariantType.Nil, MarshalType.GodotObjectOrDerived => VariantType.Object, MarshalType.StringName => VariantType.StringName, MarshalType.NodePath => VariantType.NodePath, @@ -140,8 +139,6 @@ namespace Godot.SourceGenerators return MarshalType.Double; case SpecialType.System_String: return MarshalType.String; - case SpecialType.System_Object: - return MarshalType.SystemObject; default: { var typeKind = type.TypeKind; @@ -175,6 +172,7 @@ namespace Godot.SourceGenerators { Name: "RID" } => MarshalType.RID, { Name: "Callable" } => MarshalType.Callable, { Name: "SignalInfo" } => MarshalType.SignalInfo, + { Name: "Variant" } => MarshalType.Variant, _ => null }; } @@ -198,8 +196,6 @@ namespace Godot.SourceGenerators return MarshalType.Float64Array; case SpecialType.System_String: return MarshalType.StringArray; - case SpecialType.System_Object: - return MarshalType.SystemObjectArray; } if (elementType.SimpleDerivesFrom(typeCache.GodotObjectType)) @@ -323,6 +319,9 @@ namespace Godot.SourceGenerators return null; } + private static StringBuilder Append(this StringBuilder source, string a, string b) + => source.Append(a).Append(b); + private static StringBuilder Append(this StringBuilder source, string a, string b, string c) => source.Append(a).Append(b).Append(c); @@ -346,7 +345,6 @@ namespace Godot.SourceGenerators string c, string d, string e, string f, string g, string h) => source.Append(a).Append(b).Append(c).Append(d).Append(e).Append(f).Append(g).Append(h); - private const string Marshaling = "global::Godot.NativeInterop.Marshaling"; private const string VariantUtils = "global::Godot.NativeInterop.VariantUtils"; public static StringBuilder AppendVariantToManagedExpr(this StringBuilder source, @@ -440,8 +438,6 @@ namespace Godot.SourceGenerators MarshalType.GodotObjectOrDerivedArray => source.Append(VariantUtils, ".ConvertToSystemArrayOfGodotObject<", ((IArrayTypeSymbol)typeSymbol).ElementType.FullQualifiedName(), ">(", inputExpr, ")"), - MarshalType.SystemObjectArray => - source.Append(VariantUtils, ".ConvertToSystemArrayOfVariant(", inputExpr, ")"), MarshalType.SystemArrayOfSupportedType => source.Append(VariantUtils, ".ConvertToSystemArrayOfSupportedType<", ((IArrayTypeSymbol)typeSymbol).ElementType.FullQualifiedName(), ">(", inputExpr, ")"), @@ -466,8 +462,8 @@ namespace Godot.SourceGenerators MarshalType.GenericICollection or MarshalType.GenericIEnumerable => source.Append(VariantUtils, ".ConvertToGenericArrayObject<", ((INamedTypeSymbol)typeSymbol).TypeArguments[0].FullQualifiedName(), ">(", inputExpr, ")"), - MarshalType.SystemObject => - source.Append(Marshaling, ".ConvertVariantToManagedObject(", inputExpr, ")"), + MarshalType.Variant => + source.Append("global::Godot.Variant.CreateCopyingBorrowed(", inputExpr, ")"), MarshalType.GodotObjectOrDerived => source.Append("(", typeSymbol.FullQualifiedName(), ")", VariantUtils, ".ConvertToGodotObject(", inputExpr, ")"), @@ -579,8 +575,6 @@ namespace Godot.SourceGenerators source.Append(VariantUtils, ".CreateFromPackedColorArray(", inputExpr, ")"), MarshalType.GodotObjectOrDerivedArray => source.Append(VariantUtils, ".CreateFromSystemArrayOfGodotObject(", inputExpr, ")"), - MarshalType.SystemObjectArray => - source.Append(VariantUtils, ".CreateFromSystemArrayOfVariant(", inputExpr, ")"), MarshalType.SystemArrayOfSupportedType => source.Append(VariantUtils, ".CreateFromSystemArrayOfSupportedType(", inputExpr, ")"), MarshalType.GodotGenericDictionary => @@ -597,8 +591,8 @@ namespace Godot.SourceGenerators source.Append(VariantUtils, ".CreateFromSystemGenericICollection(", inputExpr, ")"), MarshalType.GenericIEnumerable => source.Append(VariantUtils, ".CreateFromSystemGenericIEnumerable(", inputExpr, ")"), - MarshalType.SystemObject => - source.Append(Marshaling, ".ConvertManagedObjectToVariant(", inputExpr, ")"), + MarshalType.Variant => + source.Append(inputExpr, ".CopyNativeVariant()"), MarshalType.GodotObjectOrDerived => source.Append(VariantUtils, ".CreateFromGodotObject(", inputExpr, ")"), MarshalType.StringName => |