Skip to content

Commit 5fcc655

Browse files
os: use syscall.Timespec.Unix
Use the syscall method instead of repeating the type conversions for each OS. Change-Id: I1db975b3aaa189cf724d7b1b7c5c41bc64dd964d Reviewed-on: https://go-review.googlesource.com/c/go/+/374574 Trust: Ian Lance Taylor <[email protected]> Run-TryBot: Ian Lance Taylor <[email protected]> Reviewed-by: Emmanuel Odeke <[email protected]> Reviewed-by: Tobias Klauser <[email protected]>
1 parent ad646b3 commit 5fcc655

8 files changed

+16
-48
lines changed

src/os/stat_darwin.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
func fillFileStatFromSys(fs *fileStat, name string) {
1313
fs.name = basename(name)
1414
fs.size = fs.sys.Size
15-
fs.modTime = timespecToTime(fs.sys.Mtimespec)
15+
fs.modTime = time.Unix(fs.sys.Mtimespec.Unix())
1616
fs.mode = FileMode(fs.sys.Mode & 0777)
1717
switch fs.sys.Mode & syscall.S_IFMT {
1818
case syscall.S_IFBLK, syscall.S_IFWHT:
@@ -41,11 +41,7 @@ func fillFileStatFromSys(fs *fileStat, name string) {
4141
}
4242
}
4343

44-
func timespecToTime(ts syscall.Timespec) time.Time {
45-
return time.Unix(int64(ts.Sec), int64(ts.Nsec))
46-
}
47-
4844
// For testing.
4945
func atime(fi FileInfo) time.Time {
50-
return timespecToTime(fi.Sys().(*syscall.Stat_t).Atimespec)
46+
return time.Unix(fi.Sys().(*syscall.Stat_t).Atimespec.Unix())
5147
}

src/os/stat_dragonfly.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
func fillFileStatFromSys(fs *fileStat, name string) {
1313
fs.name = basename(name)
1414
fs.size = fs.sys.Size
15-
fs.modTime = timespecToTime(fs.sys.Mtim)
15+
fs.modTime = time.Unix(fs.sys.Mtim.Unix())
1616
fs.mode = FileMode(fs.sys.Mode & 0777)
1717
switch fs.sys.Mode & syscall.S_IFMT {
1818
case syscall.S_IFBLK:
@@ -41,11 +41,7 @@ func fillFileStatFromSys(fs *fileStat, name string) {
4141
}
4242
}
4343

44-
func timespecToTime(ts syscall.Timespec) time.Time {
45-
return time.Unix(ts.Sec, ts.Nsec)
46-
}
47-
4844
// For testing.
4945
func atime(fi FileInfo) time.Time {
50-
return timespecToTime(fi.Sys().(*syscall.Stat_t).Atim)
46+
return time.Unix(fi.Sys().(*syscall.Stat_t).Atim.Unix())
5147
}

src/os/stat_freebsd.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
func fillFileStatFromSys(fs *fileStat, name string) {
1313
fs.name = basename(name)
1414
fs.size = fs.sys.Size
15-
fs.modTime = timespecToTime(fs.sys.Mtimespec)
15+
fs.modTime = time.Unix(fs.sys.Mtimespec.Unix())
1616
fs.mode = FileMode(fs.sys.Mode & 0777)
1717
switch fs.sys.Mode & syscall.S_IFMT {
1818
case syscall.S_IFBLK:
@@ -41,11 +41,7 @@ func fillFileStatFromSys(fs *fileStat, name string) {
4141
}
4242
}
4343

44-
func timespecToTime(ts syscall.Timespec) time.Time {
45-
return time.Unix(int64(ts.Sec), int64(ts.Nsec))
46-
}
47-
4844
// For testing.
4945
func atime(fi FileInfo) time.Time {
50-
return timespecToTime(fi.Sys().(*syscall.Stat_t).Atimespec)
46+
return time.Unix(fi.Sys().(*syscall.Stat_t).Atimespec.Unix())
5147
}

src/os/stat_js.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
func fillFileStatFromSys(fs *fileStat, name string) {
1515
fs.name = basename(name)
1616
fs.size = fs.sys.Size
17-
fs.modTime = timespecToTime(fs.sys.Mtime, fs.sys.MtimeNsec)
17+
fs.modTime = time.Unix(fs.sys.Mtime, fs.sys.MtimeNsec)
1818
fs.mode = FileMode(fs.sys.Mode & 0777)
1919
switch fs.sys.Mode & syscall.S_IFMT {
2020
case syscall.S_IFBLK:
@@ -43,12 +43,8 @@ func fillFileStatFromSys(fs *fileStat, name string) {
4343
}
4444
}
4545

46-
func timespecToTime(sec, nsec int64) time.Time {
47-
return time.Unix(sec, nsec)
48-
}
49-
5046
// For testing.
5147
func atime(fi FileInfo) time.Time {
5248
st := fi.Sys().(*syscall.Stat_t)
53-
return timespecToTime(st.Atime, st.AtimeNsec)
49+
return time.Unix(st.Atime, st.AtimeNsec)
5450
}

src/os/stat_linux.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
func fillFileStatFromSys(fs *fileStat, name string) {
1313
fs.name = basename(name)
1414
fs.size = fs.sys.Size
15-
fs.modTime = timespecToTime(fs.sys.Mtim)
15+
fs.modTime = time.Unix(fs.sys.Mtim.Unix())
1616
fs.mode = FileMode(fs.sys.Mode & 0777)
1717
switch fs.sys.Mode & syscall.S_IFMT {
1818
case syscall.S_IFBLK:
@@ -41,11 +41,7 @@ func fillFileStatFromSys(fs *fileStat, name string) {
4141
}
4242
}
4343

44-
func timespecToTime(ts syscall.Timespec) time.Time {
45-
return time.Unix(int64(ts.Sec), int64(ts.Nsec))
46-
}
47-
4844
// For testing.
4945
func atime(fi FileInfo) time.Time {
50-
return timespecToTime(fi.Sys().(*syscall.Stat_t).Atim)
46+
return time.Unix(fi.Sys().(*syscall.Stat_t).Atim.Unix())
5147
}

src/os/stat_netbsd.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
func fillFileStatFromSys(fs *fileStat, name string) {
1313
fs.name = basename(name)
1414
fs.size = fs.sys.Size
15-
fs.modTime = timespecToTime(fs.sys.Mtimespec)
15+
fs.modTime = time.Unix(fs.sys.Mtimespec.Unix())
1616
fs.mode = FileMode(fs.sys.Mode & 0777)
1717
switch fs.sys.Mode & syscall.S_IFMT {
1818
case syscall.S_IFBLK:
@@ -41,11 +41,7 @@ func fillFileStatFromSys(fs *fileStat, name string) {
4141
}
4242
}
4343

44-
func timespecToTime(ts syscall.Timespec) time.Time {
45-
return time.Unix(ts.Sec, int64(ts.Nsec))
46-
}
47-
4844
// For testing.
4945
func atime(fi FileInfo) time.Time {
50-
return timespecToTime(fi.Sys().(*syscall.Stat_t).Atimespec)
46+
return time.Unix(fi.Sys().(*syscall.Stat_t).Atimespec.Unix())
5147
}

src/os/stat_openbsd.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
func fillFileStatFromSys(fs *fileStat, name string) {
1313
fs.name = basename(name)
1414
fs.size = fs.sys.Size
15-
fs.modTime = timespecToTime(fs.sys.Mtim)
15+
fs.modTime = time.Unix(fs.sys.Mtim.Unix())
1616
fs.mode = FileMode(fs.sys.Mode & 0777)
1717
switch fs.sys.Mode & syscall.S_IFMT {
1818
case syscall.S_IFBLK:
@@ -41,11 +41,7 @@ func fillFileStatFromSys(fs *fileStat, name string) {
4141
}
4242
}
4343

44-
func timespecToTime(ts syscall.Timespec) time.Time {
45-
return time.Unix(ts.Sec, int64(ts.Nsec))
46-
}
47-
4844
// For testing.
4945
func atime(fi FileInfo) time.Time {
50-
return timespecToTime(fi.Sys().(*syscall.Stat_t).Atim)
46+
return time.Unix(fi.Sys().(*syscall.Stat_t).Atim.Unix())
5147
}

src/os/stat_solaris.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
func fillFileStatFromSys(fs *fileStat, name string) {
1313
fs.name = basename(name)
1414
fs.size = fs.sys.Size
15-
fs.modTime = timespecToTime(fs.sys.Mtim)
15+
fs.modTime = time.Unix(fs.sys.Mtim.Unix())
1616
fs.mode = FileMode(fs.sys.Mode & 0777)
1717
switch fs.sys.Mode & syscall.S_IFMT {
1818
case syscall.S_IFBLK:
@@ -41,11 +41,7 @@ func fillFileStatFromSys(fs *fileStat, name string) {
4141
}
4242
}
4343

44-
func timespecToTime(ts syscall.Timespec) time.Time {
45-
return time.Unix(ts.Sec, ts.Nsec)
46-
}
47-
4844
// For testing.
4945
func atime(fi FileInfo) time.Time {
50-
return timespecToTime(fi.Sys().(*syscall.Stat_t).Atim)
46+
return time.Unix(fi.Sys().(*syscall.Stat_t).Atim.Unix())
5147
}

0 commit comments

Comments
 (0)