mirror of
https://github.com/golang/go
synced 2024-11-26 16:16:57 -07:00
os: avoid allocating a string for ReadDir skipped entries on Windows
Shave off a few allocations while reading a directory by checking if the entry name is "." or ".." before allocating a string for it. Change-Id: I05a87d7572bd4fc191db70aaa9e22a6102f68b4b Reviewed-on: https://go-review.googlesource.com/c/go/+/520415 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Run-TryBot: Quim Muntal <quimmuntal@gmail.com> Reviewed-by: Bryan Mills <bcmills@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
e094e80f65
commit
50f2b7b764
@ -153,10 +153,12 @@ func (file *File) readdir(n int, mode readdirMode) (names []string, dirents []Di
|
||||
if islast {
|
||||
d.bufp = 0
|
||||
}
|
||||
name := syscall.UTF16ToString(nameslice)
|
||||
if name == "." || name == ".." { // Useless names
|
||||
if (len(nameslice) == 1 && nameslice[0] == '.') ||
|
||||
(len(nameslice) == 2 && nameslice[0] == '.' && nameslice[1] == '.') {
|
||||
// Ignore "." and ".." and avoid allocating a string for them.
|
||||
continue
|
||||
}
|
||||
name := syscall.UTF16ToString(nameslice)
|
||||
if mode == readdirName {
|
||||
names = append(names, name)
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user