@@ -338,31 +338,34 @@ pub(crate) fn option_as_libc_timespec_ptr(timespec: Option<&Timespec>) -> *const
338338/// [here]: https://github.com/rust-lang/rust/issues/108277#issuecomment-1787057158
339339#[ cfg( apple) ]
340340#[ inline]
341- pub ( crate ) fn fix_negative_nsecs ( secs : & mut i64 , mut nsecs : i32 ) -> i32 {
341+ pub ( crate ) fn fix_negative_nsecs (
342+ mut secs : c:: time_t ,
343+ mut nsecs : c:: c_long ,
344+ ) -> ( c:: time_t , c:: c_long ) {
342345 #[ cold]
343- fn adjust ( secs : & mut i64 , nsecs : i32 ) -> i32 {
346+ fn adjust ( secs : & mut c :: time_t , nsecs : c :: c_long ) -> c :: c_long {
344347 assert ! ( nsecs >= -1_000_000_000 ) ;
345348 assert ! ( * secs < 0 ) ;
346- assert ! ( * secs > i64 :: MIN ) ;
349+ assert ! ( * secs > c :: time_t :: MIN ) ;
347350 * secs -= 1 ;
348351 nsecs + 1_000_000_000
349352 }
350353
351354 if nsecs < 0 {
352- nsecs = adjust ( secs, nsecs) ;
355+ nsecs = adjust ( & mut secs, nsecs) ;
353356 }
354- nsecs
357+ ( secs , nsecs)
355358}
356359
357360#[ cfg( apple) ]
358361#[ test]
359362fn test_negative_timestamps ( ) {
360363 let mut secs = -59 ;
361364 let mut nsecs = -900_000_000 ;
362- nsecs = fix_negative_nsecs ( & mut secs, nsecs) ;
365+ ( secs , nsecs) = fix_negative_nsecs ( secs, nsecs) ;
363366 assert_eq ! ( secs, -60 ) ;
364367 assert_eq ! ( nsecs, 100_000_000 ) ;
365- nsecs = fix_negative_nsecs ( & mut secs, nsecs) ;
368+ ( secs , nsecs) = fix_negative_nsecs ( secs, nsecs) ;
366369 assert_eq ! ( secs, -60 ) ;
367370 assert_eq ! ( nsecs, 100_000_000 ) ;
368371}
0 commit comments