From 8d98f990c9ed158d8c65befc154ab58a3c392646 Mon Sep 17 00:00:00 2001 From: Javier Date: Wed, 3 Dec 2014 01:47:48 +0100 Subject: fix some appmsg issues --- daemon/watchconnector.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'daemon/watchconnector.cpp') diff --git a/daemon/watchconnector.cpp b/daemon/watchconnector.cpp index dd95821..baec52c 100644 --- a/daemon/watchconnector.cpp +++ b/daemon/watchconnector.cpp @@ -109,13 +109,17 @@ bool WatchConnector::dispatchMessage(uint endpoint, const QByteArray &data) if (tmp_it != tmpHandlers.end()) { QList& funcs = tmp_it.value(); bool ok = false; - if (!funcs.empty()) { - if (funcs.first()(data)) { + for (int i = 0; i < funcs.size(); i++) { + if (funcs[i](data)) { + // This handler accepted this message ok = true; - funcs.removeFirst(); + // Since it is a temporary handler, remove it. + funcs.removeAt(i); + break; } } if (funcs.empty()) { + // "Garbage collect" the tmpHandlers entry. tmpHandlers.erase(tmp_it); } if (ok) { -- cgit v1.2.3