@@ -14,6 +14,7 @@ import (
1414 "sort"
1515 "time"
1616
17+ "code.gitea.io/gitea/modules/container"
1718 "code.gitea.io/gitea/modules/log"
1819 "code.gitea.io/gitea/modules/process"
1920 "code.gitea.io/gitea/modules/util"
@@ -130,22 +131,19 @@ func readDir(layer *Layer, name string) ([]fs.FileInfo, error) {
130131// * false: only directories will be returned.
131132// The returned files are sorted by name.
132133func (l * LayeredFS ) ListFiles (name string , fileMode ... bool ) ([]string , error ) {
133- fileMap := map [string ]bool {}
134+ fileSet := make (container. Set [string ])
134135 for _ , layer := range l .layers {
135136 infos , err := readDir (layer , name )
136137 if err != nil {
137138 return nil , err
138139 }
139140 for _ , info := range infos {
140141 if shouldInclude (info , fileMode ... ) {
141- fileMap [ info .Name ()] = true
142+ fileSet . Add ( info .Name ())
142143 }
143144 }
144145 }
145- files := make ([]string , 0 , len (fileMap ))
146- for file := range fileMap {
147- files = append (files , file )
148- }
146+ files := fileSet .Values ()
149147 sort .Strings (files )
150148 return files , nil
151149}
@@ -161,7 +159,7 @@ func (l *LayeredFS) ListAllFiles(name string, fileMode ...bool) ([]string, error
161159}
162160
163161func listAllFiles (layers []* Layer , name string , fileMode ... bool ) ([]string , error ) {
164- fileMap := map [string ]bool {}
162+ fileSet := make (container. Set [string ])
165163 var list func (dir string ) error
166164 list = func (dir string ) error {
167165 for _ , layer := range layers {
@@ -172,7 +170,7 @@ func listAllFiles(layers []*Layer, name string, fileMode ...bool) ([]string, err
172170 for _ , info := range infos {
173171 path := util .PathJoinRelX (dir , info .Name ())
174172 if shouldInclude (info , fileMode ... ) {
175- fileMap [ path ] = true
173+ fileSet . Add ( path )
176174 }
177175 if info .IsDir () {
178176 if err = list (path ); err != nil {
@@ -186,10 +184,7 @@ func listAllFiles(layers []*Layer, name string, fileMode ...bool) ([]string, err
186184 if err := list (name ); err != nil {
187185 return nil , err
188186 }
189- var files []string
190- for file := range fileMap {
191- files = append (files , file )
192- }
187+ files := fileSet .Values ()
193188 sort .Strings (files )
194189 return files , nil
195190}
0 commit comments