mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-17 05:25:37 +03:00
Auto merge of #35426 - frewsxcv:os-sys-env-args-phantoms, r=alexcrichton
Utilize `PhantomData` to enforce `!Sync` and `!Send` field. None
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
use io;
|
||||
use iter;
|
||||
use libc::{self, c_int, c_char, c_void};
|
||||
use marker::PhantomData;
|
||||
use mem;
|
||||
use memchr;
|
||||
use path::{self, PathBuf};
|
||||
@@ -305,7 +306,7 @@ pub fn current_exe() -> io::Result<PathBuf> {
|
||||
|
||||
pub struct Args {
|
||||
iter: vec::IntoIter<OsString>,
|
||||
_dont_send_or_sync_me: *mut (),
|
||||
_dont_send_or_sync_me: PhantomData<*mut ()>,
|
||||
}
|
||||
|
||||
impl Iterator for Args {
|
||||
@@ -343,7 +344,7 @@ pub fn args() -> Args {
|
||||
};
|
||||
Args {
|
||||
iter: vec.into_iter(),
|
||||
_dont_send_or_sync_me: ptr::null_mut(),
|
||||
_dont_send_or_sync_me: PhantomData,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -400,7 +401,7 @@ pub fn args() -> Args {
|
||||
}
|
||||
}
|
||||
|
||||
Args { iter: res.into_iter(), _dont_send_or_sync_me: ptr::null_mut() }
|
||||
Args { iter: res.into_iter(), _dont_send_or_sync_me: PhantomData }
|
||||
}
|
||||
|
||||
#[cfg(any(target_os = "linux",
|
||||
@@ -419,12 +420,12 @@ pub fn args() -> Args {
|
||||
let v: Vec<OsString> = bytes.into_iter().map(|v| {
|
||||
OsStringExt::from_vec(v)
|
||||
}).collect();
|
||||
Args { iter: v.into_iter(), _dont_send_or_sync_me: ptr::null_mut() }
|
||||
Args { iter: v.into_iter(), _dont_send_or_sync_me: PhantomData }
|
||||
}
|
||||
|
||||
pub struct Env {
|
||||
iter: vec::IntoIter<(OsString, OsString)>,
|
||||
_dont_send_or_sync_me: *mut (),
|
||||
_dont_send_or_sync_me: PhantomData<*mut ()>,
|
||||
}
|
||||
|
||||
impl Iterator for Env {
|
||||
@@ -465,7 +466,7 @@ pub fn env() -> Env {
|
||||
}
|
||||
let ret = Env {
|
||||
iter: result.into_iter(),
|
||||
_dont_send_or_sync_me: ptr::null_mut(),
|
||||
_dont_send_or_sync_me: PhantomData,
|
||||
};
|
||||
ENV_LOCK.unlock();
|
||||
return ret
|
||||
|
||||
Reference in New Issue
Block a user