diff options
author | Michael Klein <michael.klein@puffin.lb.shuttle.de> | 2015-08-08 21:07:58 +0100 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2015-08-13 01:16:17 +0000 |
commit | e3d7cf7c96964f9d55116f235dc3e0cbf5fef971 (patch) | |
tree | 7ac4e043f63f4c34e3647edbd473d198d032df59 /src/corelib/tools/qelapsedtimer_mac.cpp | |
parent | af3152adee2de79c03c0926400e920122b669c4d (diff) |
Cocoa: fix integer multiplication overflow in qt_gettime()
Task-number: QTBUG-24031
Change-Id: Iae00b10b6a7423508669ef173a80a03b3dd388c6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tools/qelapsedtimer_mac.cpp')
-rw-r--r-- | src/corelib/tools/qelapsedtimer_mac.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/corelib/tools/qelapsedtimer_mac.cpp b/src/corelib/tools/qelapsedtimer_mac.cpp index a355bf03e8..e946ac096f 100644 --- a/src/corelib/tools/qelapsedtimer_mac.cpp +++ b/src/corelib/tools/qelapsedtimer_mac.cpp @@ -59,8 +59,13 @@ static qint64 absoluteToNSecs(qint64 cpuTime) { if (info.denom == 0) mach_timebase_info(&info); +#ifdef __LP64__ + __uint128_t nsecs = static_cast<__uint128_t>(cpuTime) * info.numer / info.denom; + return static_cast<qint64>(nsecs); +#else qint64 nsecs = cpuTime * info.numer / info.denom; return nsecs; +#endif } static qint64 absoluteToMSecs(qint64 cpuTime) |