Browse Source

remove UpdateReferences

newNRILSpyDebugger
Siegfried Pammer 13 years ago
parent
commit
74cc698203
  1. 14
      src/AddIns/Debugger/Debugger.AddIn/Pads/ClassBrowserSupport.cs
  2. 8
      src/AddIns/Debugger/Debugger.Core/TypeSystemExtensions.cs

14
src/AddIns/Debugger/Debugger.AddIn/Pads/ClassBrowserSupport.cs

@ -83,8 +83,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
DebuggerModuleModel model = new DebuggerModuleModel(e.Module); DebuggerModuleModel model = new DebuggerModuleModel(e.Module);
moduleModels.Add(model); moduleModels.Add(model);
Assemblies.Add(model.AssemblyModel); Assemblies.Add(model.AssemblyModel);
foreach (var module in moduleModels)
module.UpdateReferences();
} }
void ModuleUnloaded(object sender, ModuleEventArgs e) void ModuleUnloaded(object sender, ModuleEventArgs e)
@ -93,8 +91,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
if (deletedModel != null) { if (deletedModel != null) {
moduleModels.Remove(deletedModel); moduleModels.Remove(deletedModel);
Assemblies.Remove(deletedModel.AssemblyModel); Assemblies.Remove(deletedModel.AssemblyModel);
foreach (var module in moduleModels)
module.UpdateReferences();
} }
} }
@ -187,14 +183,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
} }
} }
public void UpdateReferences()
{
var model = assemblyModel as IUpdateableAssemblyModel;
if (model == null) return;
// this could be totally wrong ...
model.References = module.AppDomain.Compilation.Assemblies.Where(a => a.FullAssemblyName != module.UnresolvedAssembly.FullAssemblyName).Select(a => new DomAssemblyName(a.FullAssemblyName)).ToList();
}
static IAssemblyModel CreateAssemblyModel(Module module) static IAssemblyModel CreateAssemblyModel(Module module)
{ {
// references?? // references??
@ -203,7 +191,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
var types = module.Assembly.TopLevelTypeDefinitions.SelectMany(td => td.Parts).ToList(); var types = module.Assembly.TopLevelTypeDefinitions.SelectMany(td => td.Parts).ToList();
model.AssemblyName = module.UnresolvedAssembly.AssemblyName; model.AssemblyName = module.UnresolvedAssembly.AssemblyName;
model.Update(EmptyList<IUnresolvedTypeDefinition>.Instance, types); model.Update(EmptyList<IUnresolvedTypeDefinition>.Instance, types);
model.References = module.GetReferences().Select(r => new DomAssemblyName(r)).ToArray();
return model; return model;
} }
} }

8
src/AddIns/Debugger/Debugger.Core/TypeSystemExtensions.cs

@ -176,6 +176,14 @@ namespace Debugger
return GetInfo(assembly).Module; return GetInfo(assembly).Module;
} }
public static IEnumerable<string> GetReferences(this Module module)
{
ModuleMetadataInfo info;
if (!weakTable.TryGetValue(module.UnresolvedAssembly, out info))
throw new ArgumentException("The assembly was not from the debugger type system");
return info.CecilModule.AssemblyReferences.Select(r => r.FullName);
}
public static uint GetMetadataToken(this ITypeDefinition typeDefinition) public static uint GetMetadataToken(this ITypeDefinition typeDefinition)
{ {
var info = GetInfo(typeDefinition.ParentAssembly); var info = GetInfo(typeDefinition.ParentAssembly);

Loading…
Cancel
Save