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