Use the _unix_fstat pointer to avoid 144B copies on fileIO

This commit is contained in:
Colin Davidson
2022-02-18 20:50:49 -08:00
parent 23be56af59
commit 54a6637d38
+7 -5
View File
@@ -501,11 +501,13 @@ seek :: proc(fd: Handle, offset: i64, whence: int) -> (i64, Errno) {
} }
file_size :: proc(fd: Handle) -> (i64, Errno) { file_size :: proc(fd: Handle) -> (i64, Errno) {
s, err := _fstat(fd) // deliberately uninitialized; the syscall fills this buffer for us
if err != ERROR_NONE { s: OS_Stat = ---
return 0, err result := _unix_fstat(fd, &s)
} if result < 0 {
return max(s.size, 0), ERROR_NONE return 0, _get_errno(result)
}
return max(s.size, 0), ERROR_NONE
} }
rename :: proc(old_path, new_path: string) -> Errno { rename :: proc(old_path, new_path: string) -> Errno {