Remove useless overrides
This commit is contained in:
parent
b52c5f12fe
commit
08eafd1080
|
@ -86,10 +86,34 @@ namespace de4dot.code.renamer {
|
||||||
prepareRenameMemberDefinitions(scopes);
|
prepareRenameMemberDefinitions(scopes);
|
||||||
renameMemberDefinitions();
|
renameMemberDefinitions();
|
||||||
renameMemberReferences();
|
renameMemberReferences();
|
||||||
|
removeUselessOverrides(scopes);
|
||||||
renameResources();
|
renameResources();
|
||||||
modules.cleanUp();
|
modules.cleanUp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void removeUselessOverrides(MethodNameScopes scopes) {
|
||||||
|
foreach (var scope in scopes.getAllScopes()) {
|
||||||
|
foreach (var method in scope.Methods) {
|
||||||
|
if (!method.Owner.HasModule)
|
||||||
|
continue;
|
||||||
|
if (!method.isPublic())
|
||||||
|
continue;
|
||||||
|
var overrides = method.MethodDefinition.Overrides;
|
||||||
|
for (int i = 0; i < overrides.Count; i++) {
|
||||||
|
var overrideMethod = overrides[i];
|
||||||
|
if (method.MethodDefinition.Name != overrideMethod.Name)
|
||||||
|
continue;
|
||||||
|
Log.v("Removed useless override from method {0} ({1:X8}), override: {2:X8}",
|
||||||
|
method.MethodDefinition,
|
||||||
|
method.MethodDefinition.MetadataToken.ToInt32(),
|
||||||
|
overrideMethod.MetadataToken.ToInt32());
|
||||||
|
overrides.RemoveAt(i);
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void renameTypeDefinitions() {
|
void renameTypeDefinitions() {
|
||||||
Log.v("Renaming obfuscated type definitions");
|
Log.v("Renaming obfuscated type definitions");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user