diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2019-10-18 17:28:21 +0200 |
---|---|---|
committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2019-10-22 07:05:00 +0200 |
commit | 1e94466b06190061a86e9918c5e45279171e600f (patch) | |
tree | 6496f4b37c0ee6de24d16554933b7e345af9340e /src/qml/qml/qqmlvme_p.h | |
parent | a9bf6e652aa99784343c94b0181c9443205e2a82 (diff) |
QQmlIncubationController: remove a possible signed integer overflow
Port incubateFor / incubateWhile to qint64. Since the implementation
was doing calculations in nanoseconds, a few seconds incubation was
sufficient to cause an int overflow.
Change-Id: Iba68260a1fd62613aec17ba990ead221c0f7da10
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/qml/qqmlvme_p.h')
-rw-r--r-- | src/qml/qml/qqmlvme_p.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/qml/qml/qqmlvme_p.h b/src/qml/qml/qqmlvme_p.h index 32b1631271..05a78a17fe 100644 --- a/src/qml/qml/qqmlvme_p.h +++ b/src/qml/qml/qqmlvme_p.h @@ -100,9 +100,9 @@ class QQmlInstantiationInterrupt { public: inline QQmlInstantiationInterrupt(); // ### Qt 6: remove - inline QQmlInstantiationInterrupt(volatile bool *runWhile, int nsecs=0); - inline QQmlInstantiationInterrupt(std::atomic<bool> *runWhile, int nsecs = 0); - inline QQmlInstantiationInterrupt(int nsecs); + inline QQmlInstantiationInterrupt(volatile bool *runWhile, qint64 nsecs=0); + inline QQmlInstantiationInterrupt(std::atomic<bool> *runWhile, qint64 nsecs = 0); + inline QQmlInstantiationInterrupt(qint64 nsecs); inline void reset(); inline bool shouldInterrupt() const; @@ -110,7 +110,7 @@ private: enum Mode { None, Time, LegacyFlag, Flag }; // ### Qt 6: remove LegacyFlag Mode mode; QElapsedTimer timer; - int nsecs = 0; + qint64 nsecs = 0; volatile bool *runWhileLegacy = nullptr; // ### Qt 6: remove std::atomic<bool> *runWhile = nullptr; }; @@ -156,17 +156,17 @@ QQmlInstantiationInterrupt::QQmlInstantiationInterrupt() { } -QQmlInstantiationInterrupt::QQmlInstantiationInterrupt(volatile bool *runWhile, int nsecs) +QQmlInstantiationInterrupt::QQmlInstantiationInterrupt(volatile bool *runWhile, qint64 nsecs) : mode(LegacyFlag), nsecs(nsecs), runWhileLegacy(runWhile) { } -QQmlInstantiationInterrupt::QQmlInstantiationInterrupt(std::atomic<bool> *runWhile, int nsecs) +QQmlInstantiationInterrupt::QQmlInstantiationInterrupt(std::atomic<bool> *runWhile, qint64 nsecs) : mode(Flag), nsecs(nsecs), runWhile(runWhile) { } -QQmlInstantiationInterrupt::QQmlInstantiationInterrupt(int nsecs) +QQmlInstantiationInterrupt::QQmlInstantiationInterrupt(qint64 nsecs) : mode(Time), nsecs(nsecs) { } |