summaryrefslogtreecommitdiff
path: root/src/lib/os/dir_amd64_linux.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/os/dir_amd64_linux.go')
-rw-r--r--src/lib/os/dir_amd64_linux.go10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/os/dir_amd64_linux.go b/src/lib/os/dir_amd64_linux.go
index 67eae30ff..05b3d4c65 100644
--- a/src/lib/os/dir_amd64_linux.go
+++ b/src/lib/os/dir_amd64_linux.go
@@ -41,9 +41,8 @@ func readdirnames(file *File, count int) (names []string, err Error) {
for count != 0 {
// Refill the buffer if necessary
if d.bufp >= d.nbuf {
- var errno int64;
- dbuf := (*syscall.Dirent)(unsafe.Pointer(&d.buf[0]));
- d.nbuf, errno = syscall.Getdents(file.fd, dbuf, int64(len(d.buf)));
+ var errno int;
+ d.nbuf, errno = syscall.Getdents(file.fd, d.buf);
if d.nbuf < 0 {
return names, ErrnoToError(errno)
}
@@ -55,11 +54,12 @@ func readdirnames(file *File, count int) (names []string, err Error) {
// Drain the buffer
for count != 0 && d.bufp < d.nbuf {
dirent := (*syscall.Dirent)(unsafe.Pointer(&d.buf[d.bufp]));
- d.bufp += int64(dirent.Reclen);
+ d.bufp += int(dirent.Reclen);
if dirent.Ino == 0 { // File absent in directory.
continue
}
- var name = string(dirent.Name[0:clen(&dirent.Name)]);
+ bytes := (*[len(dirent.Name)]byte)(unsafe.Pointer(&dirent.Name[0]));
+ var name = string(bytes[0:clen(bytes)]);
if name == "." || name == ".." { // Useless names
continue
}