aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlvme_p.h
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2019-10-18 17:28:21 +0200
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2019-10-22 07:05:00 +0200
commit1e94466b06190061a86e9918c5e45279171e600f (patch)
tree6496f4b37c0ee6de24d16554933b7e345af9340e /src/qml/qml/qqmlvme_p.h
parenta9bf6e652aa99784343c94b0181c9443205e2a82 (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.h14
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)
{
}