C++: Include unused concrete types in scaffolding output (#71)
This commit is contained in:
@@ -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());
|
||||||
|
|
||||||
|
|||||||
@@ -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("}");
|
||||||
|
|||||||
Reference in New Issue
Block a user