Plugins: replace 'foreach' with 'range for'

Mark some local variables as const to prevent detach()'ing.
Use qAsConst where is not possible mark as const.
If a container is changed in a loop's body, just make copy
like 'foreach'.

Change-Id: Ic453a688a9edf8a864d47f6e3a605164508a027c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
Anton Kudryavtsev 2016-08-12 14:19:33 +03:00
parent 0445f31a6f
commit 31a2cbbbc2
10 changed files with 65 additions and 62 deletions

View File

@ -520,12 +520,12 @@ void QQmlEngineDebugServiceImpl::processMessage(const QByteArray &message)
ds >> file >> lineNumber >> columnNumber >> recurse >> dumpProperties; ds >> file >> lineNumber >> columnNumber >> recurse >> dumpProperties;
QList<QObject*> objects = objectForLocationInfo(file, lineNumber, columnNumber); const QList<QObject*> objects = objectForLocationInfo(file, lineNumber, columnNumber);
rs << QByteArray("FETCH_OBJECTS_FOR_LOCATION_R") << queryId rs << QByteArray("FETCH_OBJECTS_FOR_LOCATION_R") << queryId
<< objects.count(); << objects.count();
foreach (QObject *object, objects) { for (QObject *object : objects) {
if (recurse) if (recurse)
prepareDeferredObjects(object); prepareDeferredObjects(object);
buildObjectDump(rs, object, recurse, dumpProperties); buildObjectDump(rs, object, recurse, dumpProperties);

View File

@ -287,7 +287,7 @@ void NativeDebugger::signalEmitted(const QString &signal)
//Normalize to Lower case. //Normalize to Lower case.
QString signalName = signal.left(signal.indexOf(QLatin1Char('('))).toLower(); QString signalName = signal.left(signal.indexOf(QLatin1Char('('))).toLower();
foreach (const QString &signal, breakOnSignals) { for (const QString &signal : qAsConst(breakOnSignals)) {
if (signal == signalName) { if (signal == signalName) {
// TODO: pause debugger // TODO: pause debugger
break; break;
@ -475,8 +475,8 @@ void NativeDebugger::handleVariables(QJsonObject *response, const QJsonObject &a
TRACE_PROTOCOL("Engine: " << engine); TRACE_PROTOCOL("Engine: " << engine);
Collector collector(engine); Collector collector(engine);
QJsonArray expanded = arguments.value(QLatin1String("expanded")).toArray(); const QJsonArray expanded = arguments.value(QLatin1String("expanded")).toArray();
foreach (const QJsonValue &ex, expanded) for (const QJsonValue &ex : expanded)
collector.m_expanded.append(ex.toString()); collector.m_expanded.append(ex.toString());
TRACE_PROTOCOL("Expanded: " << collector.m_expanded); TRACE_PROTOCOL("Expanded: " << collector.m_expanded);
@ -527,16 +527,16 @@ void NativeDebugger::handleExpressions(QJsonObject *response, const QJsonObject
TRACE_PROTOCOL("Engines: " << engine << m_engine); TRACE_PROTOCOL("Engines: " << engine << m_engine);
Collector collector(engine); Collector collector(engine);
QJsonArray expanded = arguments.value(QLatin1String("expanded")).toArray(); const QJsonArray expanded = arguments.value(QLatin1String("expanded")).toArray();
foreach (const QJsonValue &ex, expanded) for (const QJsonValue &ex : expanded)
collector.m_expanded.append(ex.toString()); collector.m_expanded.append(ex.toString());
TRACE_PROTOCOL("Expanded: " << collector.m_expanded); TRACE_PROTOCOL("Expanded: " << collector.m_expanded);
QJsonArray output; QJsonArray output;
QV4::Scope scope(engine); QV4::Scope scope(engine);
QJsonArray expressions = arguments.value(QLatin1String("expressions")).toArray(); const QJsonArray expressions = arguments.value(QLatin1String("expressions")).toArray();
foreach (const QJsonValue &expr, expressions) { for (const QJsonValue &expr : expressions) {
QString expression = expr.toObject().value(QLatin1String("expression")).toString(); QString expression = expr.toObject().value(QLatin1String("expression")).toString();
QString name = expr.toObject().value(QLatin1String("name")).toString(); QString name = expr.toObject().value(QLatin1String("name")).toString();
TRACE_PROTOCOL("Evaluate expression: " << expression); TRACE_PROTOCOL("Evaluate expression: " << expression);
@ -748,7 +748,8 @@ void QQmlNativeDebugServiceImpl::engineAboutToBeRemoved(QJSEngine *engine)
TRACE_PROTOCOL("Removing engine" << engine); TRACE_PROTOCOL("Removing engine" << engine);
if (engine) { if (engine) {
QV4::ExecutionEngine *executionEngine = QV8Engine::getV4(engine->handle()); QV4::ExecutionEngine *executionEngine = QV8Engine::getV4(engine->handle());
foreach (NativeDebugger *debugger, m_debuggers) { const auto debuggersCopy = m_debuggers;
for (NativeDebugger *debugger : debuggersCopy) {
if (debugger->engine() == executionEngine) if (debugger->engine() == executionEngine)
m_debuggers.removeAll(debugger); m_debuggers.removeAll(debugger);
} }
@ -759,7 +760,7 @@ void QQmlNativeDebugServiceImpl::engineAboutToBeRemoved(QJSEngine *engine)
void QQmlNativeDebugServiceImpl::stateAboutToBeChanged(QQmlDebugService::State state) void QQmlNativeDebugServiceImpl::stateAboutToBeChanged(QQmlDebugService::State state)
{ {
if (state == Enabled) { if (state == Enabled) {
foreach (NativeDebugger *debugger, m_debuggers) { for (NativeDebugger *debugger : qAsConst(m_debuggers)) {
QV4::ExecutionEngine *engine = debugger->engine(); QV4::ExecutionEngine *engine = debugger->engine();
if (!engine->debugger()) if (!engine->debugger())
engine->setDebugger(debugger); engine->setDebugger(debugger);
@ -783,7 +784,7 @@ void QQmlNativeDebugServiceImpl::messageReceived(const QByteArray &message)
} else if (cmd == QLatin1String("echo")) { } else if (cmd == QLatin1String("echo")) {
response.insert(QStringLiteral("result"), arguments); response.insert(QStringLiteral("result"), arguments);
} else { } else {
foreach (NativeDebugger *debugger, m_debuggers) for (NativeDebugger *debugger : qAsConst(m_debuggers))
if (debugger) if (debugger)
debugger->handleCommand(&response, cmd, arguments); debugger->handleCommand(&response, cmd, arguments);
} }

View File

@ -52,7 +52,7 @@ QV4DebuggerAgent::QV4DebuggerAgent(QV4DebugServiceImpl *debugService)
QV4Debugger *QV4DebuggerAgent::pausedDebugger() const QV4Debugger *QV4DebuggerAgent::pausedDebugger() const
{ {
foreach (QV4Debugger *debugger, m_debuggers) { for (QV4Debugger *debugger : m_debuggers) {
if (debugger->state() == QV4Debugger::Paused) if (debugger->state() == QV4Debugger::Paused)
return debugger; return debugger;
} }
@ -147,13 +147,13 @@ void QV4DebuggerAgent::pause(QV4Debugger *debugger) const
void QV4DebuggerAgent::pauseAll() const void QV4DebuggerAgent::pauseAll() const
{ {
foreach (QV4Debugger *debugger, m_debuggers) for (QV4Debugger *debugger : m_debuggers)
pause(debugger); pause(debugger);
} }
void QV4DebuggerAgent::resumeAll() const void QV4DebuggerAgent::resumeAll() const
{ {
foreach (QV4Debugger *debugger, m_debuggers) for (QV4Debugger *debugger : m_debuggers)
if (debugger->state() == QV4Debugger::Paused) if (debugger->state() == QV4Debugger::Paused)
debugger->resume(QV4Debugger::FullThrottle); debugger->resume(QV4Debugger::FullThrottle);
} }
@ -161,7 +161,7 @@ void QV4DebuggerAgent::resumeAll() const
int QV4DebuggerAgent::addBreakPoint(const QString &fileName, int lineNumber, bool enabled, const QString &condition) int QV4DebuggerAgent::addBreakPoint(const QString &fileName, int lineNumber, bool enabled, const QString &condition)
{ {
if (enabled) if (enabled)
foreach (QV4Debugger *debugger, m_debuggers) for (QV4Debugger *debugger : qAsConst(m_debuggers))
debugger->addBreakPoint(fileName, lineNumber, condition); debugger->addBreakPoint(fileName, lineNumber, condition);
int id = m_breakPoints.size(); int id = m_breakPoints.size();
@ -178,7 +178,7 @@ void QV4DebuggerAgent::removeBreakPoint(int id)
m_breakPoints.remove(id); m_breakPoints.remove(id);
if (breakPoint.enabled) if (breakPoint.enabled)
foreach (QV4Debugger *debugger, m_debuggers) for (QV4Debugger *debugger : qAsConst(m_debuggers))
debugger->removeBreakPoint(breakPoint.fileName, breakPoint.lineNr); debugger->removeBreakPoint(breakPoint.fileName, breakPoint.lineNr);
} }
@ -195,7 +195,7 @@ void QV4DebuggerAgent::enableBreakPoint(int id, bool onoff)
return; return;
breakPoint.enabled = onoff; breakPoint.enabled = onoff;
foreach (QV4Debugger *debugger, m_debuggers) { for (QV4Debugger *debugger : qAsConst(m_debuggers)) {
if (onoff) if (onoff)
debugger->addBreakPoint(breakPoint.fileName, breakPoint.lineNr, breakPoint.condition); debugger->addBreakPoint(breakPoint.fileName, breakPoint.lineNr, breakPoint.condition);
else else
@ -218,14 +218,14 @@ void QV4DebuggerAgent::setBreakOnThrow(bool onoff)
{ {
if (onoff != m_breakOnThrow) { if (onoff != m_breakOnThrow) {
m_breakOnThrow = onoff; m_breakOnThrow = onoff;
foreach (QV4Debugger *debugger, m_debuggers) for (QV4Debugger *debugger : qAsConst(m_debuggers))
debugger->setBreakOnThrow(onoff); debugger->setBreakOnThrow(onoff);
} }
} }
void QV4DebuggerAgent::clearAllPauseRequests() void QV4DebuggerAgent::clearAllPauseRequests()
{ {
foreach (QV4Debugger *debugger, m_debuggers) for (QV4Debugger *debugger : qAsConst(m_debuggers))
debugger->clearPauseRequest(); debugger->clearPauseRequest();
} }

View File

@ -205,7 +205,7 @@ void ValueLookupJob::run()
QQmlContextData::get(engine->qmlEngine()->rootContext()), QQmlContextData::get(engine->qmlEngine()->rootContext()),
scopeObject.data())); scopeObject.data()));
} }
foreach (const QJsonValue &handle, handles) { for (const QJsonValue &handle : handles) {
QV4DataCollector::Ref ref = handle.toInt(); QV4DataCollector::Ref ref = handle.toInt();
if (!collector->isValidRef(ref)) { if (!collector->isValidRef(ref)) {
exception = QString::fromLatin1("Invalid Ref: %1").arg(ref); exception = QString::fromLatin1("Invalid Ref: %1").arg(ref);
@ -258,7 +258,7 @@ GatherSourcesJob::GatherSourcesJob(QV4::ExecutionEngine *engine)
void GatherSourcesJob::run() void GatherSourcesJob::run()
{ {
foreach (QV4::CompiledData::CompilationUnit *unit, engine->compilationUnits) { for (QV4::CompiledData::CompilationUnit *unit : qAsConst(engine->compilationUnits)) {
QString fileName = unit->fileName(); QString fileName = unit->fileName();
if (!fileName.isEmpty()) if (!fileName.isEmpty())
sources.append(fileName); sources.append(fileName);

View File

@ -558,7 +558,7 @@ public:
debugger->runInEngine(&job); debugger->runInEngine(&job);
QJsonArray body; QJsonArray body;
foreach (const QString &source, job.result()) { for (const QString &source : job.result()) {
QJsonObject src; QJsonObject src;
src[QLatin1String("name")] = source; src[QLatin1String("name")] = source;
src[QLatin1String("scriptType")] = 4; src[QLatin1String("scriptType")] = 4;
@ -718,7 +718,8 @@ void QV4DebugServiceImpl::stateAboutToBeChanged(State state)
{ {
QMutexLocker lock(&m_configMutex); QMutexLocker lock(&m_configMutex);
if (state == Enabled) { if (state == Enabled) {
foreach (QV4Debugger *debugger, debuggerAgent.debuggers()) { const auto debuggers = debuggerAgent.debuggers();
for (QV4Debugger *debugger : debuggers) {
QV4::ExecutionEngine *ee = debugger->engine(); QV4::ExecutionEngine *ee = debugger->engine();
if (!ee->debugger()) if (!ee->debugger())
ee->setDebugger(debugger); ee->setDebugger(debugger);
@ -737,7 +738,7 @@ void QV4DebugServiceImpl::signalEmitted(const QString &signal)
//Normalize to Lower case. //Normalize to Lower case.
QString signalName = signal.left(signal.indexOf(QLatin1Char('('))).toLower(); QString signalName = signal.left(signal.indexOf(QLatin1Char('('))).toLower();
foreach (const QString &signal, breakOnSignals) { for (const QString &signal : qAsConst(breakOnSignals)) {
if (signal == signalName) { if (signal == signalName) {
// TODO: pause debugger // TODO: pause debugger
break; break;

View File

@ -92,7 +92,7 @@ void GlobalInspector::setSelectedItems(const QList<QQuickItem *> &items)
QList<QObject*> objectList; QList<QObject*> objectList;
objectList.reserve(items.count()); objectList.reserve(items.count());
foreach (QQuickItem *item, items) for (QQuickItem *item : items)
objectList << item; objectList << item;
sendCurrentObjects(objectList); sendCurrentObjects(objectList);
@ -113,7 +113,7 @@ void GlobalInspector::sendCurrentObjects(const QList<QObject*> &objects)
QList<int> debugIds; QList<int> debugIds;
debugIds.reserve(objects.count()); debugIds.reserve(objects.count());
foreach (QObject *object, objects) for (QObject *object : objects)
debugIds << QQmlDebugService::idForObject(object); debugIds << QQmlDebugService::idForObject(object);
ds << debugIds; ds << debugIds;
@ -194,7 +194,7 @@ bool GlobalInspector::createQmlObject(int requestId, const QString &qml, QObject
return false; return false;
QString imports; QString imports;
foreach (const QString &s, importList) for (const QString &s : importList)
imports += s + QLatin1Char('\n'); imports += s + QLatin1Char('\n');
ObjectCreator *objectCreator = new ObjectCreator(requestId, parentContext->engine(), parent); ObjectCreator *objectCreator = new ObjectCreator(requestId, parentContext->engine(), parent);
@ -223,7 +223,7 @@ void GlobalInspector::removeWindow(QQuickWindow *window)
void GlobalInspector::setParentWindow(QQuickWindow *window, QWindow *parentWindow) void GlobalInspector::setParentWindow(QQuickWindow *window, QWindow *parentWindow)
{ {
foreach (QmlJSDebugger::QQuickWindowInspector *inspector, m_windowInspectors) { for (QmlJSDebugger::QQuickWindowInspector *inspector : qAsConst(m_windowInspectors)) {
if (inspector->quickWindow() == window) if (inspector->quickWindow() == window)
inspector->setParentWindow(parentWindow); inspector->setParentWindow(parentWindow);
} }
@ -234,7 +234,8 @@ bool GlobalInspector::syncSelectedItems(const QList<QQuickItem *> &items)
bool selectionChanged = false; bool selectionChanged = false;
// Disconnect and remove items that are no longer selected // Disconnect and remove items that are no longer selected
foreach (const QPointer<QQuickItem> &item, m_selectedItems) { const auto selectedItemsCopy = m_selectedItems;
for (const QPointer<QQuickItem> &item : selectedItemsCopy) {
if (!item) // Don't see how this can happen due to handling of destroyed() if (!item) // Don't see how this can happen due to handling of destroyed()
continue; continue;
if (items.contains(item)) if (items.contains(item))
@ -247,14 +248,14 @@ bool GlobalInspector::syncSelectedItems(const QList<QQuickItem *> &items)
} }
// Connect and add newly selected items // Connect and add newly selected items
foreach (QQuickItem *item, items) { for (QQuickItem *item : items) {
if (m_selectedItems.contains(item)) if (m_selectedItems.contains(item))
continue; continue;
selectionChanged = true; selectionChanged = true;
connect(item, &QObject::destroyed, this, &GlobalInspector::removeFromSelectedItems); connect(item, &QObject::destroyed, this, &GlobalInspector::removeFromSelectedItems);
m_selectedItems.append(item); m_selectedItems.append(item);
foreach (QQuickWindowInspector *inspector, m_windowInspectors) { for (QQuickWindowInspector *inspector : qAsConst(m_windowInspectors)) {
if (inspector->isEnabled() && inspector->quickWindow() == item->window()) { if (inspector->isEnabled() && inspector->quickWindow() == item->window()) {
m_highlightItems.insert(item, new SelectionHighlight(titleForItem(item), item, m_highlightItems.insert(item, new SelectionHighlight(titleForItem(item), item,
inspector->overlay())); inspector->overlay()));
@ -314,12 +315,12 @@ void GlobalInspector::processMessage(const QByteArray &message)
ds >> requestId >> command; ds >> requestId >> command;
if (command == ENABLE) { if (command == ENABLE) {
foreach (QQuickWindowInspector *inspector, m_windowInspectors) for (QQuickWindowInspector *inspector : qAsConst(m_windowInspectors))
inspector->setEnabled(true); inspector->setEnabled(true);
success = !m_windowInspectors.isEmpty(); success = !m_windowInspectors.isEmpty();
} else if (command == DISABLE) { } else if (command == DISABLE) {
setSelectedItems(QList<QQuickItem*>()); setSelectedItems(QList<QQuickItem*>());
foreach (QQuickWindowInspector *inspector, m_windowInspectors) for (QQuickWindowInspector *inspector : qAsConst(m_windowInspectors))
inspector->setEnabled(false); inspector->setEnabled(false);
success = !m_windowInspectors.isEmpty(); success = !m_windowInspectors.isEmpty();
} else if (command == SELECT) { } else if (command == SELECT) {
@ -327,7 +328,7 @@ void GlobalInspector::processMessage(const QByteArray &message)
ds >> debugIds; ds >> debugIds;
QList<QQuickItem *> selectedObjects; QList<QQuickItem *> selectedObjects;
foreach (int debugId, debugIds) { for (int debugId : qAsConst(debugIds)) {
if (QQuickItem *obj = if (QQuickItem *obj =
qobject_cast<QQuickItem *>(QQmlDebugService::objectForId(debugId))) qobject_cast<QQuickItem *>(QQmlDebugService::objectForId(debugId)))
selectedObjects << obj; selectedObjects << obj;
@ -341,7 +342,7 @@ void GlobalInspector::processMessage(const QByteArray &message)
} else if (command == SHOW_APP_ON_TOP) { } else if (command == SHOW_APP_ON_TOP) {
bool showOnTop; bool showOnTop;
ds >> showOnTop; ds >> showOnTop;
foreach (QmlJSDebugger::QQuickWindowInspector *inspector, m_windowInspectors) for (QmlJSDebugger::QQuickWindowInspector *inspector : qAsConst(m_windowInspectors))
inspector->setShowAppOnTop(showOnTop); inspector->setShowAppOnTop(showOnTop);
success = !m_windowInspectors.isEmpty(); success = !m_windowInspectors.isEmpty();
} else if (command == CREATE_OBJECT) { } else if (command == CREATE_OBJECT) {

View File

@ -205,7 +205,7 @@ QQmlNativeDebugConnector::QQmlNativeDebugConnector()
QQmlNativeDebugConnector::~QQmlNativeDebugConnector() QQmlNativeDebugConnector::~QQmlNativeDebugConnector()
{ {
foreach (QQmlDebugService *service, m_services) { for (QQmlDebugService *service : qAsConst(m_services)) {
service->stateAboutToBeChanged(QQmlDebugService::NotConnected); service->stateAboutToBeChanged(QQmlDebugService::NotConnected);
service->setState(QQmlDebugService::NotConnected); service->setState(QQmlDebugService::NotConnected);
service->stateChanged(QQmlDebugService::NotConnected); service->stateChanged(QQmlDebugService::NotConnected);
@ -232,12 +232,12 @@ void QQmlNativeDebugConnector::addEngine(QJSEngine *engine)
Q_ASSERT(!m_engines.contains(engine)); Q_ASSERT(!m_engines.contains(engine));
TRACE_PROTOCOL("Add engine to connector:" << engine); TRACE_PROTOCOL("Add engine to connector:" << engine);
foreach (QQmlDebugService *service, m_services) for (QQmlDebugService *service : qAsConst(m_services))
service->engineAboutToBeAdded(engine); service->engineAboutToBeAdded(engine);
announceObjectAvailability(QLatin1String("qmlengine"), engine, true); announceObjectAvailability(QLatin1String("qmlengine"), engine, true);
foreach (QQmlDebugService *service, m_services) for (QQmlDebugService *service : qAsConst(m_services))
service->engineAdded(engine); service->engineAdded(engine);
m_engines.append(engine); m_engines.append(engine);
@ -248,12 +248,12 @@ void QQmlNativeDebugConnector::removeEngine(QJSEngine *engine)
Q_ASSERT(m_engines.contains(engine)); Q_ASSERT(m_engines.contains(engine));
TRACE_PROTOCOL("Remove engine from connector:" << engine); TRACE_PROTOCOL("Remove engine from connector:" << engine);
foreach (QQmlDebugService *service, m_services) for (QQmlDebugService *service : qAsConst(m_services))
service->engineAboutToBeRemoved(engine); service->engineAboutToBeRemoved(engine);
announceObjectAvailability(QLatin1String("qmlengine"), engine, false); announceObjectAvailability(QLatin1String("qmlengine"), engine, false);
foreach (QQmlDebugService *service, m_services) for (QQmlDebugService *service : qAsConst(m_services))
service->engineRemoved(engine); service->engineRemoved(engine);
m_engines.removeOne(engine); m_engines.removeOne(engine);

View File

@ -122,10 +122,10 @@ void QQmlEngineControlServiceImpl::stateChanged(State)
{ {
// We flush everything for any kind of state change, to avoid complicated timing issues. // We flush everything for any kind of state change, to avoid complicated timing issues.
QMutexLocker lock(&dataMutex); QMutexLocker lock(&dataMutex);
foreach (QJSEngine *engine, startingEngines) for (QJSEngine *engine : qAsConst(startingEngines))
emit attachedToEngine(engine); emit attachedToEngine(engine);
startingEngines.clear(); startingEngines.clear();
foreach (QJSEngine *engine, stoppingEngines) for (QJSEngine *engine : qAsConst(stoppingEngines))
emit detachedFromEngine(engine); emit detachedFromEngine(engine);
stoppingEngines.clear(); stoppingEngines.clear();
} }

View File

@ -92,7 +92,7 @@ void QQmlProfilerServiceImpl::dataReady(QQmlAbstractProfilerAdapter *profiler)
m_startTimes.insert(0, profiler); m_startTimes.insert(0, profiler);
if (dataComplete) { if (dataComplete) {
QList<QJSEngine *> enginesToRelease; QList<QJSEngine *> enginesToRelease;
foreach (QJSEngine *engine, m_stoppingEngines) { for (QJSEngine *engine : qAsConst(m_stoppingEngines)) {
foreach (QQmlAbstractProfilerAdapter *engineProfiler, m_engineProfilers.values(engine)) { foreach (QQmlAbstractProfilerAdapter *engineProfiler, m_engineProfilers.values(engine)) {
if (m_startTimes.values().contains(engineProfiler)) { if (m_startTimes.values().contains(engineProfiler)) {
enginesToRelease.append(engine); enginesToRelease.append(engine);
@ -101,7 +101,7 @@ void QQmlProfilerServiceImpl::dataReady(QQmlAbstractProfilerAdapter *profiler)
} }
} }
sendMessages(); sendMessages();
foreach (QJSEngine *engine, enginesToRelease) { for (QJSEngine *engine : qAsConst(enginesToRelease)) {
m_stoppingEngines.removeOne(engine); m_stoppingEngines.removeOne(engine);
emit detachedFromEngine(engine); emit detachedFromEngine(engine);
} }
@ -183,7 +183,7 @@ void QQmlProfilerServiceImpl::addGlobalProfiler(QQmlAbstractProfilerAdapter *pro
// Global profilers are started whenever any engine profiler is started and stopped when // Global profilers are started whenever any engine profiler is started and stopped when
// all engine profilers are stopped. // all engine profilers are stopped.
quint64 features = 0; quint64 features = 0;
foreach (QQmlAbstractProfilerAdapter *engineProfiler, m_engineProfilers) for (QQmlAbstractProfilerAdapter *engineProfiler : qAsConst(m_engineProfilers))
features |= engineProfiler->features(); features |= engineProfiler->features();
if (features != 0) if (features != 0)
@ -249,12 +249,12 @@ void QQmlProfilerServiceImpl::startProfiling(QJSEngine *engine, quint64 features
startedAny = true; startedAny = true;
} }
} }
foreach (QJSEngine *profiledEngine, engines) for (QJSEngine *profiledEngine : qAsConst(engines))
d << idForObject(profiledEngine); d << idForObject(profiledEngine);
} }
if (startedAny) { if (startedAny) {
foreach (QQmlAbstractProfilerAdapter *profiler, m_globalProfilers) { for (QQmlAbstractProfilerAdapter *profiler : qAsConst(m_globalProfilers)) {
if (!profiler->isRunning()) if (!profiler->isRunning())
profiler->startProfiling(features); profiler->startProfiling(features);
} }
@ -294,7 +294,7 @@ void QQmlProfilerServiceImpl::stopProfiling(QJSEngine *engine)
if (stopping.isEmpty()) if (stopping.isEmpty())
return; return;
foreach (QQmlAbstractProfilerAdapter *profiler, m_globalProfilers) { for (QQmlAbstractProfilerAdapter *profiler : qAsConst(m_globalProfilers)) {
if (!profiler->isRunning()) if (!profiler->isRunning())
continue; continue;
m_startTimes.insert(-1, profiler); m_startTimes.insert(-1, profiler);
@ -308,10 +308,10 @@ void QQmlProfilerServiceImpl::stopProfiling(QJSEngine *engine)
emit stopFlushTimer(); emit stopFlushTimer();
m_waitingForStop = true; m_waitingForStop = true;
foreach (QQmlAbstractProfilerAdapter *profiler, reporting) for (QQmlAbstractProfilerAdapter *profiler : qAsConst(reporting))
profiler->reportData(m_useMessageTypes); profiler->reportData(m_useMessageTypes);
foreach (QQmlAbstractProfilerAdapter *profiler, stopping) for (QQmlAbstractProfilerAdapter *profiler : qAsConst(stopping))
profiler->stopProfiling(); profiler->stopProfiling();
} }
@ -327,7 +327,7 @@ void QQmlProfilerServiceImpl::sendMessages()
traceEnd << m_timer.nsecsElapsed() << (int)Event << (int)EndTrace; traceEnd << m_timer.nsecsElapsed() << (int)Event << (int)EndTrace;
QSet<QJSEngine *> seen; QSet<QJSEngine *> seen;
foreach (QQmlAbstractProfilerAdapter *profiler, m_startTimes) { for (QQmlAbstractProfilerAdapter *profiler : qAsConst(m_startTimes)) {
for (QMultiHash<QJSEngine *, QQmlAbstractProfilerAdapter *>::iterator i(m_engineProfilers.begin()); for (QMultiHash<QJSEngine *, QQmlAbstractProfilerAdapter *>::iterator i(m_engineProfilers.begin());
i != m_engineProfilers.end(); ++i) { i != m_engineProfilers.end(); ++i) {
if (i.value() == profiler && !seen.contains(i.key())) { if (i.value() == profiler && !seen.contains(i.key())) {
@ -367,7 +367,7 @@ void QQmlProfilerServiceImpl::sendMessages()
emit messagesToClient(name(), messages); emit messagesToClient(name(), messages);
// Restart flushing if any profilers are still running // Restart flushing if any profilers are still running
foreach (const QQmlAbstractProfilerAdapter *profiler, m_engineProfilers) { for (const QQmlAbstractProfilerAdapter *profiler : qAsConst(m_engineProfilers)) {
if (profiler->isRunning()) { if (profiler->isRunning()) {
emit startFlushTimer(); emit startFlushTimer();
break; break;
@ -438,21 +438,21 @@ void QQmlProfilerServiceImpl::flush()
QMutexLocker lock(&m_configMutex); QMutexLocker lock(&m_configMutex);
QList<QQmlAbstractProfilerAdapter *> reporting; QList<QQmlAbstractProfilerAdapter *> reporting;
foreach (QQmlAbstractProfilerAdapter *profiler, m_engineProfilers) { for (QQmlAbstractProfilerAdapter *profiler : qAsConst(m_engineProfilers)) {
if (profiler->isRunning()) { if (profiler->isRunning()) {
m_startTimes.insert(-1, profiler); m_startTimes.insert(-1, profiler);
reporting.append(profiler); reporting.append(profiler);
} }
} }
foreach (QQmlAbstractProfilerAdapter *profiler, m_globalProfilers) { for (QQmlAbstractProfilerAdapter *profiler : qAsConst(m_globalProfilers)) {
if (profiler->isRunning()) { if (profiler->isRunning()) {
m_startTimes.insert(-1, profiler); m_startTimes.insert(-1, profiler);
reporting.append(profiler); reporting.append(profiler);
} }
} }
foreach (QQmlAbstractProfilerAdapter *profiler, reporting) for (QQmlAbstractProfilerAdapter *profiler : qAsConst(reporting))
profiler->reportData(m_useMessageTypes); profiler->reportData(m_useMessageTypes);
} }

View File

@ -589,12 +589,12 @@ void QQmlDebugServerImpl::addEngine(QJSEngine *engine)
QMutexLocker locker(&m_helloMutex); QMutexLocker locker(&m_helloMutex);
Q_ASSERT(!m_engineConditions.contains(engine)); Q_ASSERT(!m_engineConditions.contains(engine));
foreach (QQmlDebugService *service, m_plugins) for (QQmlDebugService *service : qAsConst(m_plugins))
service->engineAboutToBeAdded(engine); service->engineAboutToBeAdded(engine);
m_engineConditions[engine].waitForServices(&m_helloMutex, m_plugins.count()); m_engineConditions[engine].waitForServices(&m_helloMutex, m_plugins.count());
foreach (QQmlDebugService *service, m_plugins) for (QQmlDebugService *service : qAsConst(m_plugins))
service->engineAdded(engine); service->engineAdded(engine);
} }
@ -606,12 +606,12 @@ void QQmlDebugServerImpl::removeEngine(QJSEngine *engine)
QMutexLocker locker(&m_helloMutex); QMutexLocker locker(&m_helloMutex);
Q_ASSERT(m_engineConditions.contains(engine)); Q_ASSERT(m_engineConditions.contains(engine));
foreach (QQmlDebugService *service, m_plugins) for (QQmlDebugService *service : qAsConst(m_plugins))
service->engineAboutToBeRemoved(engine); service->engineAboutToBeRemoved(engine);
m_engineConditions[engine].waitForServices(&m_helloMutex, m_plugins.count()); m_engineConditions[engine].waitForServices(&m_helloMutex, m_plugins.count());
foreach (QQmlDebugService *service, m_plugins) for (QQmlDebugService *service : qAsConst(m_plugins))
service->engineRemoved(engine); service->engineRemoved(engine);
m_engineConditions.remove(engine); m_engineConditions.remove(engine);
@ -703,11 +703,11 @@ void QQmlDebugServerImpl::sendMessages(const QString &name, const QList<QByteArr
if (m_clientSupportsMultiPackets) { if (m_clientSupportsMultiPackets) {
QQmlDebugPacket out; QQmlDebugPacket out;
out << name; out << name;
foreach (const QByteArray &message, messages) for (const QByteArray &message : messages)
out << message; out << message;
m_protocol->send(out.data()); m_protocol->send(out.data());
} else { } else {
foreach (const QByteArray &message, messages) for (const QByteArray &message : messages)
doSendMessage(name, message); doSendMessage(name, message);
} }
m_connection->flush(); m_connection->flush();