mirror of
https://github.com/servo/servo.git
synced 2025-08-10 07:55:33 +01:00
Use slice::from_raw_parts to simplify command_line_init.
This commit is contained in:
parent
72ead882c0
commit
d7dc85d80e
1 changed files with 5 additions and 6 deletions
|
@ -32,12 +32,11 @@ fn command_line_new() -> *mut command_line_t {
|
||||||
|
|
||||||
pub fn command_line_init(argc: c_int, argv: *const *const u8) {
|
pub fn command_line_init(argc: c_int, argv: *const *const u8) {
|
||||||
unsafe {
|
unsafe {
|
||||||
let mut a: Vec<String> = vec!();
|
let args = slice::from_raw_parts(argv, argc as usize);
|
||||||
for i in 0..(argc as usize) {
|
let a = args.iter().map(|&arg| {
|
||||||
let slice = ffi::CStr::from_ptr(*argv.offset(i as isize) as *const c_char);
|
let slice = ffi::CStr::from_ptr(arg as *const c_char);
|
||||||
let s = str::from_utf8(slice.to_bytes()).unwrap();
|
str::from_utf8(slice.to_bytes()).unwrap().to_owned()
|
||||||
a.push(s.to_owned());
|
}).collect();
|
||||||
}
|
|
||||||
let cl = command_line_new();
|
let cl = command_line_new();
|
||||||
(*cl).argc = argc;
|
(*cl).argc = argc;
|
||||||
(*cl).argv = a;
|
(*cl).argv = a;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue