@@ -6,7 +6,7 @@ namespace GitHub.Unity
6
6
{
7
7
static class TreeBuilder
8
8
{
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 )
10
10
{
11
11
if ( String . IsNullOrEmpty ( node . Label ) )
12
12
{
@@ -15,7 +15,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
15
15
}
16
16
17
17
node . RepositoryPath = parent . RepositoryPath . ToNPath ( ) . Combine ( node . Label ) ;
18
- parent . Open = ! foldedTreeEntries1 . Contains ( parent . RepositoryPath ) ;
18
+ parent . Open = ! foldedTreeSet . Contains ( parent . RepositoryPath ) ;
19
19
20
20
// Is this node inside a folder?
21
21
var nodePath = node . Label . ToNPath ( ) ;
@@ -33,7 +33,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
33
33
if ( child . Label . Equals ( root ) )
34
34
{
35
35
found = true ;
36
- BuildChildNode ( child , node , foldedTreeEntries1 , stateChangeCallback1 ) ;
36
+ BuildChildNode ( child , node , foldedTreeSet , stateChangeCallback ) ;
37
37
break ;
38
38
}
39
39
}
@@ -42,7 +42,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
42
42
if ( ! found )
43
43
{
44
44
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 ) ;
46
46
}
47
47
}
48
48
else if ( nodePath . ExtensionWithDot == ".meta" )
@@ -56,7 +56,7 @@ internal static void BuildChildNode(FileTreeNode parent, FileTreeNode node, List
56
56
if ( child . Label . Equals ( searchLabel ) )
57
57
{
58
58
found = true ;
59
- BuildChildNode ( child , node , foldedTreeEntries1 , stateChangeCallback1 ) ;
59
+ BuildChildNode ( child , node , foldedTreeSet , stateChangeCallback ) ;
60
60
break ;
61
61
}
62
62
}
@@ -106,6 +106,8 @@ internal static FileTreeNode BuildTreeRoot(IList<GitStatusEntry> newEntries, Lis
106
106
}
107
107
}
108
108
109
+ var foldedTreeSet = new HashSet < string > ( foldedTreeEntries ) ;
110
+
109
111
// Add new stuff
110
112
for ( var index = 0 ; index < newEntries . Count ; ++ index )
111
113
{
@@ -136,7 +138,7 @@ internal static FileTreeNode BuildTreeRoot(IList<GitStatusEntry> newEntries, Lis
136
138
node . Icon = iconLoaderFunc ? . Invoke ( gitStatusEntry . ProjectPath ) ;
137
139
}
138
140
139
- BuildChildNode ( tree , node , foldedTreeEntries , stateChangeCallback ) ;
141
+ BuildChildNode ( tree , node , foldedTreeSet , stateChangeCallback ) ;
140
142
}
141
143
142
144
return tree ;
0 commit comments