diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2016-05-11 11:53:02 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2016-05-11 16:55:37 +0000 |
commit | e2e0dfee7c675c91132197b4a01a394a5da9a36f (patch) | |
tree | 7bb3c6ec1063536d2e4151e0300caaa8064cfc1b /src | |
parent | f0d7080e9e640fdc7b540aba69bfbc14fc96ce39 (diff) |
QtCore/QtDBus/QtSql: port the last remaining Q_FOREACH loop and add QT_NO_FOREACH
Port the last remaining Q_FOREACH user in QtCore to
C++11 range-for and mark QtCore, QtSql and QtDBus as
Q_FOREACH-free, using QT_NO_FOREACH.
Change-Id: Ia6f99139cb1ca4a8bbe9e445421592242e048b0a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/corelib.pro | 2 | ||||
-rw-r--r-- | src/corelib/statemachine/qstatemachine.cpp | 6 | ||||
-rw-r--r-- | src/dbus/dbus.pro | 2 | ||||
-rw-r--r-- | src/sql/sql.pro | 2 |
4 files changed, 9 insertions, 3 deletions
diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro index 362ac37a59..42fd5d1a61 100644 --- a/src/corelib/corelib.pro +++ b/src/corelib/corelib.pro @@ -8,7 +8,7 @@ MODULE_CONFIG = moc resources CONFIG += $$MODULE_CONFIG DEFINES += $$MODULE_DEFINES -DEFINES += QT_NO_USING_NAMESPACE +DEFINES += QT_NO_USING_NAMESPACE QT_NO_FOREACH win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x67000000 irix-cc*:QMAKE_CXXFLAGS += -no_prelink -ptused diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp index d5b01f3c8a..e3cfd7b988 100644 --- a/src/corelib/statemachine/qstatemachine.cpp +++ b/src/corelib/statemachine/qstatemachine.cpp @@ -1778,7 +1778,11 @@ void QStateMachinePrivate::_q_start() { Q_Q(QStateMachine); Q_ASSERT(state == Starting); - foreach (QAbstractState *state, configuration) { + // iterate over a copy, since we emit signals which may cause + // 'configuration' to change, resulting in undefined behavior when + // iterating at the same time: + const auto config = configuration; + for (QAbstractState *state : config) { QAbstractStatePrivate *abstractStatePrivate = QAbstractStatePrivate::get(state); abstractStatePrivate->active = false; emit state->activeChanged(false); diff --git a/src/dbus/dbus.pro b/src/dbus/dbus.pro index 4c1aec7bb3..fa67fc17ef 100644 --- a/src/dbus/dbus.pro +++ b/src/dbus/dbus.pro @@ -23,6 +23,8 @@ win32 { -luser32 } +DEFINES += QT_NO_FOREACH + QMAKE_DOCS = $$PWD/doc/qtdbus.qdocconf PUB_HEADERS = qdbusargument.h \ diff --git a/src/sql/sql.pro b/src/sql/sql.pro index 218671d7e7..8846f03d78 100644 --- a/src/sql/sql.pro +++ b/src/sql/sql.pro @@ -6,7 +6,7 @@ win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x62000000 QMAKE_DOCS = $$PWD/doc/qtsql.qdocconf -DEFINES += QT_NO_CAST_FROM_ASCII +DEFINES += QT_NO_CAST_FROM_ASCII QT_NO_FOREACH PRECOMPILED_HEADER = ../corelib/global/qt_pch.h SQL_P = sql |