C++: Fix System.Array is not itself an array (it's a class) (fix Array__Class * error in Ghidra)

This commit is contained in:
Katy Coe
2020-08-05 08:45:45 +02:00
parent beb859128c
commit 6770bc2865

View File

@@ -177,7 +177,7 @@ namespace Il2CppInspector.Cpp
private (CppComplexType objectOrArrayType, CppComplexType fieldsType) GenerateRefFieldStruct(TypeInfo ti) { private (CppComplexType objectOrArrayType, CppComplexType fieldsType) GenerateRefFieldStruct(TypeInfo ti) {
var name = TypeNamer.GetName(ti); var name = TypeNamer.GetName(ti);
if (ti.IsArray || ti.FullName == "System.Array") { if (ti.IsArray) {
var klassType = ti.IsArray ? ti : ti.BaseType; var klassType = ti.IsArray ? ti : ti.BaseType;
var elementType = ti.IsArray ? AsCType(ti.ElementType) : types.GetType("void *"); var elementType = ti.IsArray ? AsCType(ti.ElementType) : types.GetType("void *");
var type = GenerateObjectStruct(name, klassType); var type = GenerateObjectStruct(name, klassType);