From e7d0ad2efd9d2f7b7a01d31b64c903380bd8cc18 Mon Sep 17 00:00:00 2001 From: Ben79543 <49697001+Ben79543@users.noreply.github.com> Date: Wed, 9 Jun 2021 11:40:59 +0200 Subject: [PATCH] Update BLEScan.cpp (#5241) Proposed fix to #4627 as a remediation to PR #3995 #3995 introduced that a device detected on BLE would not be entered in vector if a callback has been defined. By doing so, it was not possible anymore to have a counter in a call back (AND device in vector) to limit the number of detected device in a single scan, which could crash ESP32 as a result. --- libraries/BLE/src/BLEScan.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/BLE/src/BLEScan.cpp b/libraries/BLE/src/BLEScan.cpp index c93a30c5..e17eb2b0 100644 --- a/libraries/BLE/src/BLEScan.cpp +++ b/libraries/BLE/src/BLEScan.cpp @@ -126,7 +126,8 @@ void BLEScan::handleGAPEvent( if (m_pAdvertisedDeviceCallbacks) { // if has callback, no need to record to vector m_pAdvertisedDeviceCallbacks->onResult(*advertisedDevice); - } else if (!m_wantDuplicates && !found) { // if no callback and not want duplicate, and not already in vector, record it + } + if (!m_wantDuplicates && !found) { // if no callback and not want duplicate, and not already in vector, record it m_scanResults.m_vectorAdvertisedDevices.insert(std::pair(advertisedAddress.toString(), advertisedDevice)); shouldDelete = false; }