Fix IDA writeUsages for metadata <19

This fixes a NullReferenceException that was being thrown for IDA script
generation for metadata 16 files (e.g. as generated by Il2Cpp v5.3.0f4).
This commit is contained in:
Robert Xiao
2020-04-07 01:38:44 -07:00
committed by Katy
parent 5b78fc3f3c
commit 7fce43aba0

View File

@@ -107,6 +107,11 @@ def MakeFunction(start, end):
}
private void writeUsages() {
if (model.Package.MetadataUsages == null) {
/* Version < 19 - no MetadataUsages table */
return;
}
foreach (var usage in model.Package.MetadataUsages) {
var address = usage.VirtualAddress;
var name = model.GetMetadataUsageName(usage);
@@ -119,8 +124,7 @@ def MakeFunction(start, end):
if (usage.Type == MetadataUsageType.MethodDef || usage.Type == MetadataUsageType.MethodRef) {
var method = model.GetMetadataUsageMethod(usage);
writeComment(address, method);
}
else if (usage.Type != MetadataUsageType.StringLiteral) {
} else if (usage.Type != MetadataUsageType.StringLiteral) {
var type = model.GetMetadataUsageType(usage);
writeComment(address, type);
}