From 3dccdf5b835b9856bcf869fbad90ae4914a2813c Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sat, 10 Mar 2012 19:38:56 +0100 Subject: [PATCH] Fix time_to_msec() precision Result of t.time * 1000 should be a 64 bit value, not an int. Bug reported by several users. No functional change. Signed-off-by: Marco Costalba --- src/types.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/types.h b/src/types.h index 25eef007..4c8c8134 100644 --- a/src/types.h +++ b/src/types.h @@ -65,13 +65,13 @@ typedef unsigned __int64 uint64_t; typedef _timeb sys_time_t; inline void system_time(sys_time_t* t) { _ftime(t); } -inline uint64_t time_to_msec(const sys_time_t& t) { return t.time * 1000 + t.millitm; } +inline uint64_t time_to_msec(const sys_time_t& t) { return t.time * 1000LL + t.millitm; } #else # include typedef timeval sys_time_t; inline void system_time(sys_time_t* t) { gettimeofday(t, NULL); } -inline uint64_t time_to_msec(const sys_time_t& t) { return t.tv_sec * 1000 + t.tv_usec / 1000; } +inline uint64_t time_to_msec(const sys_time_t& t) { return t.tv_sec * 1000LL + t.tv_usec / 1000; } #endif #if defined(_WIN64) -- 2.39.2