C++: Include unused concrete types in scaffolding output (#71)

This commit is contained in:
Katy Coe
2020-09-21 20:56:19 +02:00
parent db1805cb12
commit 85ab34f569
2 changed files with 5 additions and 4 deletions

View File

@@ -255,11 +255,12 @@ namespace Il2CppInspector.Model
// Find unused concrete value types // Find unused concrete value types
var usedTypes = Types.Values.Select(t => t.Type); var usedTypes = Types.Values.Select(t => t.Type);
var unusedTypes = TypeModel.Types.Except(usedTypes); var unusedTypes = TypeModel.Types.Except(usedTypes);
var unusedValueTypes = unusedTypes.Where(t => t.IsValueType && !t.IsGenericType && !t.IsGenericParameter); var unusedConcreteTypes = unusedTypes.Where(t => !t.IsGenericType && !t.IsGenericParameter
&& !t.IsByRef && !t.IsPointer && !t.IsArray && !t.IsAbstract && t.Name != "<Module>");
Group = "unused_value_types"; Group = "unused_concrete_types";
foreach (var type in unusedValueTypes) foreach (var type in unusedConcreteTypes)
declarationGenerator.IncludeType(type); declarationGenerator.IncludeType(type);
AddTypes(declarationGenerator.GenerateRemainingTypeDeclarations()); AddTypes(declarationGenerator.GenerateRemainingTypeDeclarations());

View File

@@ -81,7 +81,7 @@ typedef size_t uintptr_t;
writeTypesForGroup("Application types from method calls", "types_from_methods"); writeTypesForGroup("Application types from method calls", "types_from_methods");
writeTypesForGroup("Application types from generic methods", "types_from_generic_methods"); writeTypesForGroup("Application types from generic methods", "types_from_generic_methods");
writeTypesForGroup("Application types from usages", "types_from_usages"); writeTypesForGroup("Application types from usages", "types_from_usages");
writeTypesForGroup("Application unused value types", "unused_value_types"); writeTypesForGroup("Application unused value types", "unused_concrete_types");
writeCode("#if !defined(_GHIDRA_) && !defined(_IDA_)"); writeCode("#if !defined(_GHIDRA_) && !defined(_IDA_)");
writeCode("}"); writeCode("}");