Return a copy of glob lists
Callers to glob methods may do in-place modifications on the returned list of globs, return a copy instead of the cached value. Test: m nothing && m nothing Change-Id: Ic9140d1e1900e8724ba0a484f27786e5c15dea90
This commit is contained in:
parent
4604a81721
commit
a64ca94c0d
1 changed files with 6 additions and 3 deletions
9
glob.go
9
glob.go
|
@ -57,7 +57,8 @@ func (c *Context) glob(pattern string, excludes []string) ([]string, error) {
|
|||
if exists {
|
||||
// Glob has already been done, double check it is identical
|
||||
verifyGlob(fileName, pattern, excludes, g)
|
||||
return g.Files, nil
|
||||
// Return a copy so that modifications don't affect the cached value.
|
||||
return append([]string(nil), g.Files...), nil
|
||||
}
|
||||
|
||||
// Get a globbed file list
|
||||
|
@ -76,10 +77,12 @@ func (c *Context) glob(pattern string, excludes []string) ([]string, error) {
|
|||
// Getting the list raced with another goroutine, throw away the results and use theirs
|
||||
if exists {
|
||||
verifyGlob(fileName, pattern, excludes, g)
|
||||
return g.Files, nil
|
||||
// Return a copy so that modifications don't affect the cached value.
|
||||
return append([]string(nil), g.Files...), nil
|
||||
}
|
||||
|
||||
return files, nil
|
||||
// Return a copy so that modifications don't affect the cached value.
|
||||
return append([]string(nil), files...), nil
|
||||
}
|
||||
|
||||
func (c *Context) Globs() []GlobPath {
|
||||
|
|
Loading…
Reference in a new issue