Type string literals as System.String

This commit is contained in:
Robert Xiao
2020-06-16 19:58:15 -07:00
committed by Katy
parent 67acd18c03
commit b7c93ffcc7
2 changed files with 3 additions and 2 deletions

View File

@@ -52,7 +52,7 @@ namespace Il2CppInspector.Outputs
} }
} }
private string AsCType(TypeInfo ti) { public string AsCType(TypeInfo ti) {
// IsArray case handled by TypeNamer.GetName // IsArray case handled by TypeNamer.GetName
if (ti.IsByRef || ti.IsPointer) { if (ti.IsByRef || ti.IsPointer) {
return $"{AsCType(ti.ElementType)} *"; return $"{AsCType(ti.ElementType)} *";

View File

@@ -144,6 +144,7 @@ typedef __int64 int64_t;
return; return;
} }
var stringType = typeGenerator.AsCType(model.TypesByFullName["System.String"]);
foreach (var usage in model.Package.MetadataUsages) { foreach (var usage in model.Package.MetadataUsages) {
var address = usage.VirtualAddress; var address = usage.VirtualAddress;
string name; string name;
@@ -151,7 +152,7 @@ typedef __int64 int64_t;
switch (usage.Type) { switch (usage.Type) {
case MetadataUsageType.StringLiteral: case MetadataUsageType.StringLiteral:
var str = model.GetMetadataUsageName(usage); var str = model.GetMetadataUsageName(usage);
writeName(address, $"StringLiteral_{stringToIdentifier(str)}"); writeTypedName(address, stringType, $"StringLiteral_{stringToIdentifier(str)}");
writeComment(address, str); writeComment(address, str);
break; break;
case MetadataUsageType.Type: case MetadataUsageType.Type: