Merge pull request #78877 from mattdiener/master

C# Fix deserialization of delegates that are 0-parameter overloads
This commit is contained in:
Yuri Sizov 2023-07-12 15:09:36 +02:00
commit e4c89a0278
1 changed files with 7 additions and 14 deletions

View File

@ -500,10 +500,7 @@ namespace Godot
Type? returnType = hasReturn ? DeserializeType(reader) : typeof(void); Type? returnType = hasReturn ? DeserializeType(reader) : typeof(void);
int parametersCount = reader.ReadInt32(); int parametersCount = reader.ReadInt32();
var parameterTypes = parametersCount == 0 ? Type.EmptyTypes : new Type[parametersCount];
if (parametersCount > 0)
{
var parameterTypes = new Type[parametersCount];
for (int i = 0; i < parametersCount; i++) for (int i = 0; i < parametersCount; i++)
{ {
@ -517,10 +514,6 @@ namespace Godot
return methodInfo != null && methodInfo.ReturnType == returnType; return methodInfo != null && methodInfo.ReturnType == returnType;
} }
methodInfo = declaringType.GetMethod(methodName, (BindingFlags)flags);
return methodInfo != null && methodInfo.ReturnType == returnType;
}
private static Type? DeserializeType(BinaryReader reader) private static Type? DeserializeType(BinaryReader reader)
{ {
int genericArgumentsCount = reader.ReadInt32(); int genericArgumentsCount = reader.ReadInt32();