Skip to content

Commit f013914

Browse files
authored
Auto merge of #35426 - frewsxcv:os-sys-env-args-phantoms, r=alexcrichton
Utilize `PhantomData` to enforce `!Sync` and `!Send` field. None
2 parents c2b03f8 + 28218be commit f013914

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/libstd/sys/unix/os.rs

+7-6
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ use fmt;
2121
use io;
2222
use iter;
2323
use libc::{self, c_int, c_char, c_void};
24+
use marker::PhantomData;
2425
use mem;
2526
use memchr;
2627
use path::{self, PathBuf};
@@ -305,7 +306,7 @@ pub fn current_exe() -> io::Result<PathBuf> {
305306

306307
pub struct Args {
307308
iter: vec::IntoIter<OsString>,
308-
_dont_send_or_sync_me: *mut (),
309+
_dont_send_or_sync_me: PhantomData<*mut ()>,
309310
}
310311

311312
impl Iterator for Args {
@@ -343,7 +344,7 @@ pub fn args() -> Args {
343344
};
344345
Args {
345346
iter: vec.into_iter(),
346-
_dont_send_or_sync_me: ptr::null_mut(),
347+
_dont_send_or_sync_me: PhantomData,
347348
}
348349
}
349350

@@ -400,7 +401,7 @@ pub fn args() -> Args {
400401
}
401402
}
402403

403-
Args { iter: res.into_iter(), _dont_send_or_sync_me: ptr::null_mut() }
404+
Args { iter: res.into_iter(), _dont_send_or_sync_me: PhantomData }
404405
}
405406

406407
#[cfg(any(target_os = "linux",
@@ -419,12 +420,12 @@ pub fn args() -> Args {
419420
let v: Vec<OsString> = bytes.into_iter().map(|v| {
420421
OsStringExt::from_vec(v)
421422
}).collect();
422-
Args { iter: v.into_iter(), _dont_send_or_sync_me: ptr::null_mut() }
423+
Args { iter: v.into_iter(), _dont_send_or_sync_me: PhantomData }
423424
}
424425

425426
pub struct Env {
426427
iter: vec::IntoIter<(OsString, OsString)>,
427-
_dont_send_or_sync_me: *mut (),
428+
_dont_send_or_sync_me: PhantomData<*mut ()>,
428429
}
429430

430431
impl Iterator for Env {
@@ -465,7 +466,7 @@ pub fn env() -> Env {
465466
}
466467
let ret = Env {
467468
iter: result.into_iter(),
468-
_dont_send_or_sync_me: ptr::null_mut(),
469+
_dont_send_or_sync_me: PhantomData,
469470
};
470471
ENV_LOCK.unlock();
471472
return ret

0 commit comments

Comments
 (0)