aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2011-04-06 16:31:09 +0200
committerThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2011-05-10 18:14:37 +0200
commit84a5bde0c4aba8bab1556ccf221aab626bf68d3d (patch)
tree489b8d9f4134b064aa68a91abf3ceb38061d1f28 /src
parentdbbcc4dff099d5cf41a3253f922b785889e17545 (diff)
QDeclarativeDebugServer: Send hello answer before any service messages
This is necessary since some services may like to send a message back immediately when its state changes to enabled. Reviewed-by: Kai Koehne (cherry picked from commit 9fa0a9319ee0f178d03f9bdc4afbabb8563b4c62)
Diffstat (limited to 'src')
-rw-r--r--src/declarative/debugger/qdeclarativedebugserver.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/declarative/debugger/qdeclarativedebugserver.cpp b/src/declarative/debugger/qdeclarativedebugserver.cpp
index 6f46354a49..d512809506 100644
--- a/src/declarative/debugger/qdeclarativedebugserver.cpp
+++ b/src/declarative/debugger/qdeclarativedebugserver.cpp
@@ -250,6 +250,17 @@ void QDeclarativeDebugServer::receiveMessage(const QByteArray &message)
int version;
in >> version >> d->clientPlugins;
+ // Send the hello answer immediately, since it needs to arrive before
+ // the plugins below start sending messages.
+ QByteArray helloAnswer;
+ {
+ QDataStream out(&helloAnswer, QIODevice::WriteOnly);
+ out << QString(QLatin1String("QDeclarativeDebugClient")) << 0 << protocolVersion << d->plugins.keys();
+ }
+ d->connection->send(helloAnswer);
+
+ d->gotHello = true;
+
QHash<QString, QDeclarativeDebugService*>::Iterator iter = d->plugins.begin();
for (; iter != d->plugins.end(); ++iter) {
QDeclarativeDebugService::Status newStatus = QDeclarativeDebugService::Unavailable;
@@ -259,14 +270,6 @@ void QDeclarativeDebugServer::receiveMessage(const QByteArray &message)
iter.value()->statusChanged(newStatus);
}
- QByteArray helloAnswer;
- {
- QDataStream out(&helloAnswer, QIODevice::WriteOnly);
- out << QString(QLatin1String("QDeclarativeDebugClient")) << 0 << protocolVersion << d->plugins.keys();
- }
- d->connection->send(helloAnswer);
-
- d->gotHello = true;
qWarning("QDeclarativeDebugServer: Connection established");
} else {