Make fd_tell host independent

This commit is contained in:
Jakub Konka
2019-07-21 10:01:17 +02:00
committed by Dan Gohman
parent 5bbf59e1c5
commit 919262b5b9
3 changed files with 7 additions and 15 deletions

View File

@@ -340,15 +340,19 @@ pub fn fd_tell(
trace!("fd_tell(fd={:?}, newoffset={:#x?})", fd, newoffset);
let fd = dec_fd(fd);
let fd = match wasi_ctx
let mut fd = match wasi_ctx
.get_fd_entry(fd, host::__WASI_RIGHT_FD_TELL, 0)
.and_then(|fe| fe.fd_object.descriptor.as_file())
{
Ok(f) => f,
Err(e) => return return_enc_errno(e),
};
let host_offset = match hostcalls_impl::fd_tell(fd) {
Ok(host_offset) => host_offset,
let host_offset = match fd
.seek(SeekFrom::Current(0))
.map_err(|err| err.raw_os_error().map_or(host::__WASI_EIO, errno_from_host))
{
Ok(offset) => offset,
Err(e) => return return_enc_errno(e),
};