diff --git a/src/Http.c b/src/Http.c index 8b5def8f8..858436277 100644 --- a/src/Http.c +++ b/src/Http.c @@ -1005,7 +1005,7 @@ static void WorkerLoop(void) { request.result = Http_BackendDo(&request, &url); end = Stopwatch_Measure(); - elapsed = (int)Stopwatch_ElapsedMilliseconds(beg, end); + elapsed = Stopwatch_ElapsedMilliseconds(beg, end); Platform_Log4("HTTP: result %i (http %i) in %i ms (%i bytes)", &request.result, &request.statusCode, &elapsed, &request.size); Http_FinishRequest(&request); diff --git a/src/Platform.c b/src/Platform.c index a13912667..8ce347dbe 100644 --- a/src/Platform.c +++ b/src/Platform.c @@ -191,8 +191,10 @@ cc_uint64 Stopwatch_ElapsedMicroseconds(cc_uint64 beg, cc_uint64 end) { return ((end - beg) * sw_freqMul) / sw_freqDiv; } -cc_uint64 Stopwatch_ElapsedMilliseconds(cc_uint64 beg, cc_uint64 end) { - return Stopwatch_ElapsedMicroseconds(beg, end) / 1000; +int Stopwatch_ElapsedMilliseconds(cc_uint64 beg, cc_uint64 end) { + cc_uint64 raw = Stopwatch_ElapsedMicroseconds(beg, end); + if (raw > Int32_MaxValue) return Int32_MaxValue / 1000; + return (int)raw / 1000; } #if defined CC_BUILD_WIN diff --git a/src/Platform.h b/src/Platform.h index 14f0f27ee..fc4dbc5c8 100644 --- a/src/Platform.h +++ b/src/Platform.h @@ -141,7 +141,7 @@ CC_API cc_uint64 Stopwatch_Measure(void); /* Returns total elapsed microseconds between two stopwatch measurements. */ CC_API cc_uint64 Stopwatch_ElapsedMicroseconds(cc_uint64 beg, cc_uint64 end); /* Returns total elapsed milliseconds between two stopwatch measurements. */ -CC_API cc_uint64 Stopwatch_ElapsedMilliseconds(cc_uint64 beg, cc_uint64 end); +CC_API int Stopwatch_ElapsedMilliseconds(cc_uint64 beg, cc_uint64 end); /* Returns non-zero if the given directory exists. */ CC_API int Directory_Exists(const cc_string* path); diff --git a/src/Protocol.c b/src/Protocol.c index f0dc803e2..d3b23d8c1 100644 --- a/src/Protocol.c +++ b/src/Protocol.c @@ -534,7 +534,7 @@ static void Classic_LevelFinalise(cc_uint8* data) { int delta; end = Stopwatch_Measure(); - delta = (int)Stopwatch_ElapsedMilliseconds(map_receiveBeg, end); + delta = Stopwatch_ElapsedMilliseconds(map_receiveBeg, end); Platform_Log1("map loading took: %i", &delta); map_begunLoading = false; WoM_CheckSendWomID();