Browse Source

remove expensive HasBaseTypes and HasDerivedTypes calls

pull/80/head
Siegfried Pammer 12 years ago
parent
commit
e537efb18c
  1. 14
      src/Main/Base/Project/Dom/ClassBrowser/TypeDefinitionTreeNode.cs

14
src/Main/Base/Project/Dom/ClassBrowser/TypeDefinitionTreeNode.cs

@ -71,20 +71,22 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser
UpdateBaseTypesNode(); UpdateBaseTypesNode();
} }
static readonly FullTypeName SystemObjectName = new FullTypeName("System.Object");
void UpdateBaseTypesNode() void UpdateBaseTypesNode()
{ {
this.Children.RemoveAll(n => n is BaseTypesTreeNode); this.Children.RemoveAll(n => n is BaseTypesTreeNode);
var baseTypesTreeNode = new BaseTypesTreeNode(definition); if (definition.FullTypeName != SystemObjectName) {
if (baseTypesTreeNode.HasBaseTypes()) Children.Insert(0, new BaseTypesTreeNode(definition));
Children.Insert(0, baseTypesTreeNode); }
} }
void UpdateDerivedTypesNode() void UpdateDerivedTypesNode()
{ {
this.Children.RemoveAll(n => n is DerivedTypesTreeNode); this.Children.RemoveAll(n => n is DerivedTypesTreeNode);
var derivedTypesTreeNode = new DerivedTypesTreeNode(definition); if (!definition.IsSealed) {
if (derivedTypesTreeNode.HasDerivedTypes()) Children.Insert(0, new DerivedTypesTreeNode(definition));
Children.Insert(0, derivedTypesTreeNode); }
} }
public override void ActivateItem(System.Windows.RoutedEventArgs e) public override void ActivateItem(System.Windows.RoutedEventArgs e)

Loading…
Cancel
Save