summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qelapsedtimer_mac.cpp
diff options
context:
space:
mode:
authorMichael Klein <michael.klein@puffin.lb.shuttle.de>2015-08-08 21:07:58 +0100
committerThiago Macieira <thiago.macieira@intel.com>2015-08-13 01:16:17 +0000
commite3d7cf7c96964f9d55116f235dc3e0cbf5fef971 (patch)
tree7ac4e043f63f4c34e3647edbd473d198d032df59 /src/corelib/tools/qelapsedtimer_mac.cpp
parentaf3152adee2de79c03c0926400e920122b669c4d (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.cpp5
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)