diff options
| author | newpavlov <newpavlov@gmail.com> | 2019-08-21 04:16:05 +0300 |
|---|---|---|
| committer | newpavlov <newpavlov@gmail.com> | 2019-08-21 04:16:05 +0300 |
| commit | 88fd9450aa2111fcbe981006a9c391d57775ec14 (patch) | |
| tree | 7b2fb2bdb5f1d3f0f5edac44803bde1d90cef256 /src/libstd/sys/wasi | |
| parent | 4dee102a67466ca0c95f540aa458f8779f3a1cb5 (diff) | |
| download | rust-88fd9450aa2111fcbe981006a9c391d57775ec14.tar.gz rust-88fd9450aa2111fcbe981006a9c391d57775ec14.zip | |
update args
Diffstat (limited to 'src/libstd/sys/wasi')
| -rw-r--r-- | src/libstd/sys/wasi/args.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libstd/sys/wasi/args.rs b/src/libstd/sys/wasi/args.rs index 2d0ddea385a..de9ca62469d 100644 --- a/src/libstd/sys/wasi/args.rs +++ b/src/libstd/sys/wasi/args.rs @@ -18,8 +18,14 @@ pub struct Args { /// Returns the command line arguments pub fn args() -> Args { - let mut buf = Vec::new(); - let _ = wasi::get_args(|arg| buf.push(OsString::from_vec(arg.to_vec()))); + let buf = wasi::args_sizes_get().and_then(|args_sizes| { + let mut buf = Vec::with_capacity(args_sizes.get_count()); + wasi::get_args(args_sizes, |arg| { + let arg = OsString::from_vec(arg.to_vec()); + buf.push(arg); + })?; + Ok(buf) + }).unwrap_or(vec![]); Args { iter: buf.into_iter(), _dont_send_or_sync_me: PhantomData |
