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:
parent
0445f31a6f
commit
31a2cbbbc2
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in New Issue