diff --git a/MetadataProvider/AssemblyExtractor.cs b/MetadataProvider/AssemblyExtractor.cs index 66787d90..28713454 100644 --- a/MetadataProvider/AssemblyExtractor.cs +++ b/MetadataProvider/AssemblyExtractor.cs @@ -88,7 +88,6 @@ public IBasicType ContainingType private SRPE.PEReader reader; private SRM.MetadataReader metadata; - private SRM.MetadataReader pdbMetadata; private GenericContext defGenericContext; private GenericContext refGenericContext; private SignatureTypeProvider signatureTypeProvider; @@ -96,9 +95,8 @@ public IBasicType ContainingType private Namespace currentNamespace; private TypeDefinition currentType; private MethodDefinition currentMethod; - private IDictionary currentMethodLocalVariablesNames; - public AssemblyExtractor(Host host, SRPE.PEReader reader, SRM.MetadataReaderProvider pdbProvider = null) + public AssemblyExtractor(Host host, SRPE.PEReader reader) { this.Host = host; this.reader = reader; @@ -109,12 +107,7 @@ public AssemblyExtractor(Host host, SRPE.PEReader reader, SRM.MetadataReaderProv this.defGenericContext = new GenericContext(); this.refGenericContext = new GenericContext(); this.signatureTypeProvider = new SignatureTypeProvider(this); - - if (pdbProvider != null) - { - this.pdbMetadata = pdbProvider.GetMetadataReader(); - } - } + } public Host Host { get; private set; } @@ -525,7 +518,6 @@ private void ExtractMethod(SRM.MethodDefinitionHandle methoddefHandle) ExtractParameter(signature, handle); } - ExtractLocalVariablesNames(methoddefHandle); ExtractMethodBody(methoddef.RelativeVirtualAddress); defGenericContext.MethodParameters.Clear(); @@ -584,27 +576,7 @@ private Constant ExtractParameterDefaultValue(SRM.Parameter parameterdef) return result; } - - private void ExtractLocalVariablesNames(SRM.MethodDefinitionHandle methoddefHandle) - { - if (pdbMetadata == null) - { - currentMethodLocalVariablesNames = null; - } - else - { - var localVariablesNames = from scopeHandle in pdbMetadata.GetLocalScopes(methoddefHandle) - let localScope = pdbMetadata.GetLocalScope(scopeHandle) - from localHandle in localScope.GetLocalVariables() - let local = pdbMetadata.GetLocalVariable(localHandle) - let name = pdbMetadata.GetString(local.Name) - select new { Name = name, Index = local.Index }; - - currentMethodLocalVariablesNames = localVariablesNames.ToDictionary(x => x.Index, x => x.Name); - } - } - - private void ExtractMethodBody(int relativeVirtualAddress) + private void ExtractMethodBody(int relativeVirtualAddress) { if (relativeVirtualAddress == 0) return; var bodyBlock = SRM.PEReaderExtensions.GetMethodBody(reader, relativeVirtualAddress); @@ -655,7 +627,7 @@ private void ExtractLocalVariables(SRM.MethodBodyBlock bodyBlock, IList handlers) { foreach (var region in bodyBlock.ExceptionRegions) diff --git a/MetadataProvider/Loader.cs b/MetadataProvider/Loader.cs index 47327ea3..2b6f863f 100644 --- a/MetadataProvider/Loader.cs +++ b/MetadataProvider/Loader.cs @@ -47,19 +47,16 @@ public Assembly LoadAssembly(string fileName) return result; }; - var ok = reader.TryOpenAssociatedPortablePdb(fileName, streamProvider, - out SRM.MetadataReaderProvider pdbProvider, out _); - - var assembly = ExtractAssembly(reader, pdbProvider); + var assembly = ExtractAssembly(reader); this.Host.Assemblies.Add(assembly); return assembly; } } - private Assembly ExtractAssembly(SRPE.PEReader reader, SRM.MetadataReaderProvider pdbProvider) + private Assembly ExtractAssembly(SRPE.PEReader reader) { - var extractor = new AssemblyExtractor(this.Host, reader, pdbProvider); + var extractor = new AssemblyExtractor(this.Host, reader); var result = extractor.Extract(); return result; }