From 7a0a5edcc747bdef71f11638a8c3c47fb31f8be6 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Mon, 14 Sep 2015 02:35:20 +0400 Subject: [Bluetooth] Optimize loops Decrease complexity from O(N+N*logN) to just O(N) for cases like foreach (Key key, map.keys()) Value value = map.value(key); , by rewriting with use of iterators. Change-Id: I81f1334797f16b624293fcebdee885b2be3c89f1 Reviewed-by: Alex Blasche --- src/bluetooth/qlowenergycontroller_android.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/bluetooth/qlowenergycontroller_android.cpp') diff --git a/src/bluetooth/qlowenergycontroller_android.cpp b/src/bluetooth/qlowenergycontroller_android.cpp index f48c0e85..b04ddedd 100644 --- a/src/bluetooth/qlowenergycontroller_android.cpp +++ b/src/bluetooth/qlowenergycontroller_android.cpp @@ -453,9 +453,11 @@ void QLowEnergyControllerPrivate::descriptorRead( serviceList.value(serviceUuid); bool entryUpdated = false; - foreach (QLowEnergyHandle charHandle, service->characteristicList.keys()) { - QLowEnergyServicePrivate::CharData &charDetails = - service->characteristicList[charHandle]; + + CharacteristicDataMap::iterator charIt = service->characteristicList.begin(); + for ( ; charIt != service->characteristicList.end(); ++charIt) { + QLowEnergyServicePrivate::CharData &charDetails = charIt.value(); + if (charDetails.uuid != charUuid) continue; -- cgit v1.2.3