Skip to content
This repository has been archived by the owner on Nov 9, 2019. It is now read-only.

Commit

Permalink
Implement fd_filestat_set_size using libstd
Browse files Browse the repository at this point in the history
  • Loading branch information
marmistrz committed Aug 8, 2019
1 parent 84ec73f commit c95d217
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 15 deletions.
6 changes: 1 addition & 5 deletions src/hostcalls_impl/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -779,11 +779,7 @@ pub(crate) fn fd_filestat_set_size(
.and_then(|fe| fe.fd_object.descriptor.as_file())?;

let st_size = dec_filesize(st_size);
if st_size > i64::max_value() as u64 {
return Err(host::__WASI_E2BIG);
}

hostcalls_impl::fd_filestat_set_size(fd, st_size)
fd.set_len(st_size).map_err(errno_from_ioerror)
}

pub(crate) fn path_filestat_get(
Expand Down
6 changes: 0 additions & 6 deletions src/sys/unix/hostcalls_impl/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -406,12 +406,6 @@ pub(crate) fn fd_filestat_set_times(
}
}

pub(crate) fn fd_filestat_set_size(fd: &File, st_size: host::__wasi_filesize_t) -> Result<()> {
use nix::unistd::ftruncate;
ftruncate(fd.as_raw_fd(), st_size as off_t)
.map_err(|e| host_impl::errno_from_nix(e.as_errno().unwrap()))
}

pub(crate) fn path_filestat_get(
resolved: PathGet,
dirflags: host::__wasi_lookupflags_t,
Expand Down
4 changes: 0 additions & 4 deletions src/sys/windows/hostcalls_impl/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -276,10 +276,6 @@ pub(crate) fn fd_filestat_set_times(
unimplemented!("fd_filestat_set_times")
}

pub(crate) fn fd_filestat_set_size(fd: &File, st_size: host::__wasi_filesize_t) -> Result<()> {
unimplemented!("fd_filestat_set_size")
}

pub(crate) fn path_filestat_get(
resolved: PathGet,
dirflags: host::__wasi_lookupflags_t,
Expand Down

0 comments on commit c95d217

Please sign in to comment.