ResourceReader.Read() now takes a ModuleDef instead of a ModuleDefMD as 1st param
This commit is contained in:
parent
8b4b48cb08
commit
8521f7baac
|
@ -26,12 +26,14 @@ using dnlib.DotNet;
|
||||||
|
|
||||||
namespace de4dot.code.resources {
|
namespace de4dot.code.resources {
|
||||||
class ResourceDataCreator {
|
class ResourceDataCreator {
|
||||||
ModuleDefMD module;
|
readonly ModuleDef module;
|
||||||
Dictionary<string, UserResourceType> dict = new Dictionary<string, UserResourceType>(StringComparer.Ordinal);
|
readonly ModuleDefMD moduleMD;
|
||||||
Dictionary<string, string> asmNameToAsmFullName = new Dictionary<string, string>(StringComparer.Ordinal);
|
readonly Dictionary<string, UserResourceType> dict = new Dictionary<string, UserResourceType>(StringComparer.Ordinal);
|
||||||
|
readonly Dictionary<string, string> asmNameToAsmFullName = new Dictionary<string, string>(StringComparer.Ordinal);
|
||||||
|
|
||||||
public ResourceDataCreator(ModuleDefMD module) {
|
public ResourceDataCreator(ModuleDef module) {
|
||||||
this.module = module;
|
this.module = module;
|
||||||
|
this.moduleMD = module as ModuleDefMD;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Count {
|
public int Count {
|
||||||
|
@ -210,9 +212,11 @@ namespace de4dot.code.resources {
|
||||||
string TryGetRealAssemblyName(string assemblyName) {
|
string TryGetRealAssemblyName(string assemblyName) {
|
||||||
var simpleName = Utils.GetAssemblySimpleName(assemblyName);
|
var simpleName = Utils.GetAssemblySimpleName(assemblyName);
|
||||||
|
|
||||||
var asmRef = module.GetAssemblyRef(simpleName);
|
if (moduleMD != null) {
|
||||||
|
var asmRef = moduleMD.GetAssemblyRef(simpleName);
|
||||||
if (asmRef != null)
|
if (asmRef != null)
|
||||||
return asmRef.FullName;
|
return asmRef.FullName;
|
||||||
|
}
|
||||||
|
|
||||||
var asm = TheAssemblyResolver.Instance.Resolve(new AssemblyNameInfo(simpleName), module);
|
var asm = TheAssemblyResolver.Instance.Resolve(new AssemblyNameInfo(simpleName), module);
|
||||||
return asm == null ? null : asm.FullName;
|
return asm == null ? null : asm.FullName;
|
||||||
|
|
|
@ -34,17 +34,15 @@ namespace de4dot.code.resources {
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ResourceReader {
|
struct ResourceReader {
|
||||||
ModuleDefMD module;
|
|
||||||
IBinaryReader reader;
|
IBinaryReader reader;
|
||||||
ResourceDataCreator resourceDataCreator;
|
ResourceDataCreator resourceDataCreator;
|
||||||
|
|
||||||
ResourceReader(ModuleDefMD module, IBinaryReader reader) {
|
ResourceReader(ModuleDef module, IBinaryReader reader) {
|
||||||
this.module = module;
|
|
||||||
this.reader = reader;
|
this.reader = reader;
|
||||||
this.resourceDataCreator = new ResourceDataCreator(module);
|
this.resourceDataCreator = new ResourceDataCreator(module);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ResourceElementSet Read(ModuleDefMD module, IBinaryReader reader) {
|
public static ResourceElementSet Read(ModuleDef module, IBinaryReader reader) {
|
||||||
return new ResourceReader(module, reader).Read();
|
return new ResourceReader(module, reader).Read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user