Browse Source

fix NullReferenceException if IEnumerable contains no elements

pull/18/head
Siegfried Pammer 14 years ago
parent
commit
d4ce5d75e8
  1. 2
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/ArrayRangeNode.cs
  2. 4
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/ChildNodesOfObject.cs
  3. 2
      src/AddIns/Debugger/Debugger.AddIn/TreeModel/TreeNode.cs

2
src/AddIns/Debugger/Debugger.AddIn/TreeModel/ArrayRangeNode.cs

@ -14,7 +14,7 @@ namespace Debugger.AddIn.TreeModel @@ -14,7 +14,7 @@ namespace Debugger.AddIn.TreeModel
public static IEnumerable<TreeNode> LazyGetChildNodesOfArray(TreeNode parent, Expression expression, ArrayDimensions dimensions)
{
if (dimensions.TotalElementCount == 0)
return new TreeNode[] { new TreeNode(null, "(empty)", null, null, parent, null) };
return new TreeNode[] { new TreeNode(null, "(empty)", null, null, parent, _ => null) };
return new ArrayRangeNode(parent, expression, dimensions, dimensions).ChildNodes;
}

4
src/AddIns/Debugger/Debugger.AddIn/TreeModel/ChildNodesOfObject.cs

@ -117,9 +117,9 @@ namespace Debugger.AddIn.TreeModel @@ -117,9 +117,9 @@ namespace Debugger.AddIn.TreeModel
error = e;
}
if (error != null) {
yield return new TreeNode(null, "(error)", error.Message, null, null, null);
yield return new TreeNode(null, "(error)", error.Message, null, null, _ => null);
} else if (count == 0) {
yield return new TreeNode(null, "(empty)", null, null, null, null);
yield return new TreeNode(null, "(empty)", null, null, null, _ => null);
} else {
for(int i = 0; i < count; i++) {
string imageName;

2
src/AddIns/Debugger/Debugger.AddIn/TreeModel/TreeNode.cs

@ -118,6 +118,8 @@ namespace Debugger.AddIn.TreeModel @@ -118,6 +118,8 @@ namespace Debugger.AddIn.TreeModel
public TreeNode(IImage iconImage, string name, string text, string type, TreeNode parent, Func<TreeNode, IEnumerable<TreeNode>> childNodes)
: this(parent)
{
if (childNodes == null)
throw new ArgumentNullException("childNodes");
this.iconImage = iconImage;
this.name = name;
this.text = text;

Loading…
Cancel
Save