@@ -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