@@ -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 } ;
@@ -305,7 +306,7 @@ pub fn current_exe() -> io::Result<PathBuf> {
305306
306307pub struct Args {
307308 iter : vec:: IntoIter < OsString > ,
308- _dont_send_or_sync_me : * mut ( ) ,
309+ _dont_send_or_sync_me : PhantomData < * mut ( ) > ,
309310}
310311
311312impl 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
425426pub 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
430431impl 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