From 8ab8125fbd70e439f677c37832a678e6ce1067d7 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 4 Nov 2020 11:52:43 -0800 Subject: [PATCH] os: remove unused variable in unix implementation of File.readdir Change-Id: I0dd8a325bce6ed12d1ec1dc206ded62398925aef Reviewed-on: https://go-review.googlesource.com/c/go/+/267758 Run-TryBot: Brad Fitzpatrick Reviewed-by: Emmanuel Odeke Reviewed-by: Ian Lance Taylor TryBot-Result: Go Bot Trust: Brad Fitzpatrick Trust: Emmanuel Odeke --- src/os/dir_unix.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/os/dir_unix.go b/src/os/dir_unix.go index 3e5a6983501..0e1eab1c965 100644 --- a/src/os/dir_unix.go +++ b/src/os/dir_unix.go @@ -36,9 +36,16 @@ func (f *File) readdir(n int, mode readdirMode) (names []string, dirents []DirEn } d := f.dirinfo - size := n - if size <= 0 { - size = 100 + // Change the meaning of n for the implementation below. + // + // The n above was for the public interface of "if n <= 0, + // Readdir returns all the FileInfo from the directory in a + // single slice". + // + // But below, we use only negative to mean looping until the + // end and positive to mean bounded, with positive + // terminating at 0. + if n == 0 { n = -1 } @@ -88,7 +95,9 @@ func (f *File) readdir(n int, mode readdirMode) (names []string, dirents []DirEn if string(name) == "." || string(name) == ".." { continue } - n-- + if n > 0 { // see 'n == 0' comment above + n-- + } if mode == readdirName { names = append(names, string(name)) } else if mode == readdirDirEntry {