Unload loaded modules when renaming is over
This commit is contained in:
parent
98cdcf9ca5
commit
42e7583659
|
@ -125,6 +125,7 @@ namespace de4dot.renamer {
|
|||
renameMemberDefinitions();
|
||||
renameMemberReferences();
|
||||
renameResources();
|
||||
externalAssemblies.unloadAll();
|
||||
DotNetUtils.typeCaches.invalidateAll();
|
||||
}
|
||||
|
||||
|
|
|
@ -38,6 +38,11 @@ namespace de4dot.renamer {
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void unload() {
|
||||
foreach (var module in asmDef.Modules)
|
||||
DotNetUtils.typeCaches.invalidate(module);
|
||||
}
|
||||
}
|
||||
|
||||
// Loads assemblies that aren't renamed
|
||||
|
@ -66,7 +71,7 @@ namespace de4dot.renamer {
|
|||
}
|
||||
Log.v("Loaded assembly {0}", asmFullName);
|
||||
|
||||
return assemblies[asmFullName] = asm = new ExternalAssembly(asmDef);
|
||||
return assemblies[asmFullName] = new ExternalAssembly(asmDef);
|
||||
}
|
||||
|
||||
public TypeDefinition resolve(TypeReference type) {
|
||||
|
@ -75,5 +80,11 @@ namespace de4dot.renamer {
|
|||
return null;
|
||||
return asm.resolve(type);
|
||||
}
|
||||
|
||||
public void unloadAll() {
|
||||
foreach (var asm in assemblies.Values)
|
||||
asm.unload();
|
||||
assemblies.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user