Pārlūkot izejas kodu

Fix 64-bit timeval/timespec delta calculations

Brick 3 gadi atpakaļ
vecāks
revīzija
62629c2b5d
2 mainītis faili ar 3 papildinājumiem un 3 dzēšanām
  1. 1 1
      src/timer/psp/SDL_systimer.c
  2. 2 2
      src/timer/unix/SDL_systimer.c

+ 1 - 1
src/timer/psp/SDL_systimer.c

@@ -61,7 +61,7 @@ SDL_GetTicks64(void)
     }
 
     gettimeofday(&now, NULL);
-    return (((Uint64)(now.tv_sec-start.tv_sec)) * 1000) + (((Uint64) (now.tv_usec-start.tv_usec)) / 1000);
+    return (Uint64) (((Sint64) (now.tv_sec - start.tv_sec) * 1000) + ((now.tv_usec - start.tv_usec) / 1000));
 }
 
 Uint64

+ 2 - 2
src/timer/unix/SDL_systimer.c

@@ -117,7 +117,7 @@ SDL_GetTicks64(void)
 #if HAVE_CLOCK_GETTIME
         struct timespec now;
         clock_gettime(SDL_MONOTONIC_CLOCK, &now);
-        return (((Uint64) (now.tv_sec - start_ts.tv_sec)) * 1000) + (((Uint64) (now.tv_nsec - start_ts.tv_nsec)) / 1000000);
+        return (Uint64) (((Sint64) (now.tv_sec - start_ts.tv_sec) * 1000) + ((now.tv_nsec - start_ts.tv_nsec) / 1000000));
 #elif defined(__APPLE__)
         const uint64_t now = mach_absolute_time();
         return (Uint64) ((((now - start_mach) * mach_base_info.numer) / mach_base_info.denom) / 1000000);
@@ -128,7 +128,7 @@ SDL_GetTicks64(void)
     }
 
     gettimeofday(&now, NULL);
-    return (((Uint64) (now.tv_sec - start_tv.tv_sec)) * 1000) + (((Uint64) (now.tv_usec - start_tv.tv_usec)) / 1000);
+    return (Uint64) (((Sint64) (now.tv_sec - start_tv.tv_sec) * 1000) + ((now.tv_usec - start_tv.tv_usec) / 1000));
 }
 
 Uint64