os: use arr.trim() in read_bytes, instead of a arr[0..x].clone()
parent
40ac7d4892
commit
d820f2da6f
|
@ -86,9 +86,8 @@ pub fn read_bytes(path string) ?[]byte {
|
|||
return error('fread failed')
|
||||
}
|
||||
C.fclose(fp)
|
||||
fres := res[0..nr_read_elements * fsize].clone()
|
||||
unsafe { res.free() }
|
||||
return fres
|
||||
res.trim(nr_read_elements * fsize)
|
||||
return res
|
||||
}
|
||||
|
||||
// read_file reads the file in `path` and returns the contents.
|
||||
|
@ -156,6 +155,10 @@ pub fn truncate(path string, len u64) ? {
|
|||
}
|
||||
}
|
||||
|
||||
fn eprintln_unknown_file_size() {
|
||||
eprintln('os.file_size() Cannot determine file-size: ' + posix_get_error_msg(C.errno))
|
||||
}
|
||||
|
||||
// file_size returns the size of the file located in `path`.
|
||||
// If an error occurs it returns 0.
|
||||
// Note that use of this on symbolic links on Windows returns always 0.
|
||||
|
@ -166,15 +169,13 @@ pub fn file_size(path string) u64 {
|
|||
$if windows {
|
||||
mut swin := C.__stat64{}
|
||||
if C._wstat64(&char(path.to_wide()), voidptr(&swin)) != 0 {
|
||||
eprintln('os.file_size() Cannot determine file-size: ' +
|
||||
posix_get_error_msg(C.errno))
|
||||
eprintln_unknown_file_size()
|
||||
return 0
|
||||
}
|
||||
return swin.st_size
|
||||
} $else {
|
||||
if C.stat(&char(path.str), &s) != 0 {
|
||||
eprintln('os.file_size() Cannot determine file-size: ' +
|
||||
posix_get_error_msg(C.errno))
|
||||
eprintln_unknown_file_size()
|
||||
return 0
|
||||
}
|
||||
return u64(s.st_size)
|
||||
|
@ -186,15 +187,13 @@ pub fn file_size(path string) u64 {
|
|||
}
|
||||
$if windows {
|
||||
if C._wstat(path.to_wide(), voidptr(&s)) != 0 {
|
||||
eprintln('os.file_size() Cannot determine file-size: ' +
|
||||
posix_get_error_msg(C.errno))
|
||||
eprintln_unknown_file_size()
|
||||
return 0
|
||||
}
|
||||
return u64(s.st_size)
|
||||
} $else {
|
||||
if C.stat(&char(path.str), &s) != 0 {
|
||||
eprintln('os.file_size() Cannot determine file-size: ' +
|
||||
posix_get_error_msg(C.errno))
|
||||
eprintln_unknown_file_size()
|
||||
return 0
|
||||
}
|
||||
return u64(s.st_size)
|
||||
|
|
Loading…
Reference in New Issue