Rename deprecated MethodPointers to GlobalMethodPointers

This commit is contained in:
Katy Coe
2019-10-16 17:18:43 +02:00
parent 3345d4566a
commit 38e04b72b7
3 changed files with 9 additions and 6 deletions

View File

@@ -18,7 +18,8 @@ namespace Il2CppInspector
public Il2CppCodeRegistration CodeRegistration { get; protected set; }
public Il2CppMetadataRegistration MetadataRegistration { get; protected set; }
public uint[] MethodPointers { get; set; }
// Only for <=v24.0
public uint[] GlobalMethodPointers { get; set; }
// NOTE: In versions <21 and earlier releases of v21, this array has the format:
// global field index => field offset
@@ -72,7 +73,7 @@ namespace Il2CppInspector
// The global method pointer list was deprecated in later versions of v24 in favour of Il2CppCodeGenModule
if (Image.Stream.Version <= 24.0)
MethodPointers = image.ReadMappedArray<uint>(CodeRegistration.pmethodPointers, (int) CodeRegistration.methodPointersCount);
GlobalMethodPointers = image.ReadMappedArray<uint>(CodeRegistration.pmethodPointers, (int) CodeRegistration.methodPointersCount);
// After v24 method pointers and RGCTX data were stored in Il2CppCodeGenModules
if (Image.Stream.Version >= 24.1) {

View File

@@ -34,10 +34,10 @@ namespace Il2CppInspector
public List<int> FieldOffsets { get; }
public List<Il2CppType> TypeUsages => Binary.Types;
public Dictionary<string, Il2CppCodeGenModule> Modules => Binary.Modules;
public uint[] MethodPointers => Binary.MethodPointers;
public uint[] GlobalMethodPointers => Binary.GlobalMethodPointers; // <=v24.0 only
// TODO: Finish all file access in the constructor and eliminate the need for this
public IFileFormatReader BinaryImage { get; }
public IFileFormatReader BinaryImage => Binary.Image;
public Il2CppInspector(Il2CppBinary binary, Metadata metadata) {
// Store stream representations
@@ -105,6 +105,7 @@ namespace Il2CppInspector
value = Encoding.UTF8.GetString(Metadata.ReadBytes(uiLen));
break;
}
FieldDefaultValue.Add(fdv.fieldIndex, value);
}
@@ -138,6 +139,7 @@ namespace Il2CppInspector
offsets.Add(def.fieldStart + f, Binary.Image.Stream.ReadInt32());
}
}
FieldOffsets = offsets.OrderBy(x => x.Key).Select(x => x.Value).ToList();
}
}

View File

@@ -40,7 +40,7 @@ namespace Il2CppInspector.Reflection
// Global method pointer array
if (pkg.Version < 24.1) {
VirtualAddress = pkg.MethodPointers[Definition.methodIndex];
VirtualAddress = pkg.GlobalMethodPointers[Definition.methodIndex];
}
// Per-module method pointer array uses the bottom 24 bits of the method's metadata token