Skip to content

Commit 61f76a5

Browse files
committed
Change use of unsigned integers to signed integers for clarity in
precise_time_ns The QueryPerformance* functions take a LARGE_INTEGER, which is a signed 64-bit integer rather than an unsigned 64-bit integer. `ts.tv_sec`, too, is a signed integer so `ns_per_s` has been changed to a int64_t.
1 parent 3851f90 commit 61f76a5

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/rt/rust_builtin.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ get_time(int64_t *sec, int32_t *nsec) {
203203
}
204204
#endif
205205

206-
const uint64_t ns_per_s = 1000000000LL;
206+
const int64_t ns_per_s = 1000000000LL;
207207

208208
extern "C" CDECL void
209209
precise_time_ns(uint64_t *ns) {
@@ -217,18 +217,18 @@ precise_time_ns(uint64_t *ns) {
217217
uint64_t time_nano = time * (info.numer / info.denom);
218218
*ns = time_nano;
219219
#elif __WIN32__
220-
uint64_t ticks_per_s;
220+
int64_t ticks_per_s;
221221
QueryPerformanceFrequency((LARGE_INTEGER *)&ticks_per_s);
222222
if (ticks_per_s == 0LL) {
223223
ticks_per_s = 1LL;
224224
}
225-
uint64_t ticks;
225+
int64_t ticks;
226226
QueryPerformanceCounter((LARGE_INTEGER *)&ticks);
227-
*ns = ((ticks * ns_per_s) / ticks_per_s);
227+
*ns = (uint64_t)((ticks * ns_per_s) / ticks_per_s);
228228
#else
229229
timespec ts;
230230
clock_gettime(CLOCK_MONOTONIC, &ts);
231-
*ns = (ts.tv_sec * ns_per_s + ts.tv_nsec);
231+
*ns = (uint64_t)(ts.tv_sec * ns_per_s + ts.tv_nsec);
232232
#endif
233233
}
234234

0 commit comments

Comments
 (0)