Browse Source

Reduce span of DisableAssemblyLoad-lock

pull/1143/head
Siegfried Pammer 8 years ago
parent
commit
a4ef9891dd
  1. 26
      ILSpy/TreeNodes/Analyzer/ScopedWhereUsedAnalyzer.cs

26
ILSpy/TreeNodes/Analyzer/ScopedWhereUsedAnalyzer.cs

@ -250,27 +250,27 @@ namespace ICSharpCode.ILSpy.TreeNodes.Analyzer
private IEnumerable<AssemblyDefinition> GetReferencingAssemblies(AssemblyDefinition asm, CancellationToken ct) private IEnumerable<AssemblyDefinition> GetReferencingAssemblies(AssemblyDefinition asm, CancellationToken ct)
{ {
using (LoadedAssembly.DisableAssemblyLoad()) { yield return asm;
yield return asm;
IEnumerable<LoadedAssembly> assemblies = MainWindow.Instance.CurrentAssemblyList.GetAssemblies().Where(assy => assy.GetAssemblyDefinitionOrNull() != null); IEnumerable<LoadedAssembly> assemblies = MainWindow.Instance.CurrentAssemblyList.GetAssemblies().Where(assy => assy.GetAssemblyDefinitionOrNull() != null);
foreach (var assembly in assemblies) { foreach (var assembly in assemblies) {
ct.ThrowIfCancellationRequested(); ct.ThrowIfCancellationRequested();
bool found = false; bool found = false;
var module = assembly.GetModuleDefinitionOrNull(); var module = assembly.GetModuleDefinitionOrNull();
if (module == null) if (module == null)
continue; continue;
var resolver = assembly.GetAssemblyResolver(); var resolver = assembly.GetAssemblyResolver();
foreach (var reference in module.AssemblyReferences) { foreach (var reference in module.AssemblyReferences) {
using (LoadedAssembly.DisableAssemblyLoad()) {
if (resolver.Resolve(reference) == asm) { if (resolver.Resolve(reference) == asm) {
found = true; found = true;
break; break;
} }
} }
if (found && AssemblyReferencesScopeType(module.Assembly))
yield return module.Assembly;
} }
if (found && AssemblyReferencesScopeType(module.Assembly))
yield return module.Assembly;
} }
} }

Loading…
Cancel
Save