@@ -21,6 +21,7 @@ use fmt;
2121use io;
2222use iter;
2323use libc:: { self , c_int, c_char, c_void} ;
24+ use marker:: PhantomData ;
2425use mem;
2526use memchr;
2627use path:: { self , PathBuf } ;
@@ -304,7 +305,7 @@ pub fn current_exe() -> io::Result<PathBuf> {
304305
305306pub struct Args {
306307 iter : vec:: IntoIter < OsString > ,
307- _dont_send_or_sync_me : * mut ( ) ,
308+ _dont_send_or_sync_me : PhantomData < * mut ( ) > ,
308309}
309310
310311impl Iterator for Args {
@@ -342,7 +343,7 @@ pub fn args() -> Args {
342343 } ;
343344 Args {
344345 iter : vec. into_iter ( ) ,
345- _dont_send_or_sync_me : ptr :: null_mut ( ) ,
346+ _dont_send_or_sync_me : PhantomData ,
346347 }
347348}
348349
@@ -399,7 +400,7 @@ pub fn args() -> Args {
399400 }
400401 }
401402
402- Args { iter : res. into_iter ( ) , _dont_send_or_sync_me : ptr :: null_mut ( ) }
403+ Args { iter : res. into_iter ( ) , _dont_send_or_sync_me : PhantomData }
403404}
404405
405406#[ cfg( any( target_os = "linux" ,
@@ -418,12 +419,12 @@ pub fn args() -> Args {
418419 let v: Vec < OsString > = bytes. into_iter ( ) . map ( |v| {
419420 OsStringExt :: from_vec ( v)
420421 } ) . collect ( ) ;
421- Args { iter : v. into_iter ( ) , _dont_send_or_sync_me : ptr :: null_mut ( ) }
422+ Args { iter : v. into_iter ( ) , _dont_send_or_sync_me : PhantomData }
422423}
423424
424425pub struct Env {
425426 iter : vec:: IntoIter < ( OsString , OsString ) > ,
426- _dont_send_or_sync_me : * mut ( ) ,
427+ _dont_send_or_sync_me : PhantomData < * mut ( ) > ,
427428}
428429
429430impl Iterator for Env {
@@ -464,7 +465,7 @@ pub fn env() -> Env {
464465 }
465466 let ret = Env {
466467 iter : result. into_iter ( ) ,
467- _dont_send_or_sync_me : ptr :: null_mut ( ) ,
468+ _dont_send_or_sync_me : PhantomData ,
468469 } ;
469470 ENV_LOCK . unlock ( ) ;
470471 return ret
0 commit comments