Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 006c51e

Browse files
Merge branch 'fixes/changes-view-performance' into fixes/break-up-git-add
2 parents bbf2ac4 + 81ae6b2 commit 006c51e

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/GitHub.Api/UI/TreeBuilder.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace GitHub.Unity
66
{
77
static class TreeBuilder
88
{
9-
internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List<string> foldedTreeEntries1, Action<FileTreeNode> stateChangeCallback1)
9+
internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, HashSet<string> foldedTreeSet, Action<FileTreeNode> stateChangeCallback)
1010
{
1111
if (String.IsNullOrEmpty(node.Label))
1212
{
@@ -15,7 +15,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
1515
}
1616

1717
node.RepositoryPath = parent.RepositoryPath.ToNPath().Combine(node.Label);
18-
parent.Open = !foldedTreeEntries1.Contains(parent.RepositoryPath);
18+
parent.Open = !foldedTreeSet.Contains(parent.RepositoryPath);
1919

2020
// Is this node inside a folder?
2121
var nodePath = node.Label.ToNPath();
@@ -33,7 +33,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
3333
if (child.Label.Equals(root))
3434
{
3535
found = true;
36-
BuildChildNode(child, node, foldedTreeEntries1, stateChangeCallback1);
36+
BuildChildNode(child, node, foldedTreeSet, stateChangeCallback);
3737
break;
3838
}
3939
}
@@ -42,7 +42,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
4242
if (!found)
4343
{
4444
var p = parent.RepositoryPath.ToNPath().Combine(root);
45-
BuildChildNode(parent.Add(new FileTreeNode(root, stateChangeCallback1) { RepositoryPath = p }), node, foldedTreeEntries1, stateChangeCallback1);
45+
BuildChildNode(parent.Add(new FileTreeNode(root, stateChangeCallback) { RepositoryPath = p }), node, foldedTreeSet, stateChangeCallback);
4646
}
4747
}
4848
else if (nodePath.ExtensionWithDot == ".meta")
@@ -56,7 +56,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
5656
if (child.Label.Equals(searchLabel))
5757
{
5858
found = true;
59-
BuildChildNode(child, node, foldedTreeEntries1, stateChangeCallback1);
59+
BuildChildNode(child, node, foldedTreeSet, stateChangeCallback);
6060
break;
6161
}
6262
}
@@ -106,6 +106,8 @@ internal static FileTreeNode BuildTreeRoot(IList<GitStatusEntry> newEntries, Lis
106106
}
107107
}
108108

109+
var foldedTreeSet = new HashSet<string>(foldedTreeEntries);
110+
109111
// Add new stuff
110112
for (var index = 0; index < newEntries.Count; ++index)
111113
{
@@ -136,7 +138,7 @@ internal static FileTreeNode BuildTreeRoot(IList<GitStatusEntry> newEntries, Lis
136138
node.Icon = iconLoaderFunc?.Invoke(gitStatusEntry.ProjectPath);
137139
}
138140

139-
BuildChildNode(tree, node, foldedTreeEntries, stateChangeCallback);
141+
BuildChildNode(tree, node, foldedTreeSet, stateChangeCallback);
140142
}
141143

142144
return tree;

0 commit comments

Comments
 (0)