From 3c94d73e65fe48586b3e46a2f20ba65c3e5416f1 Mon Sep 17 00:00:00 2001 From: Lee Leahy Date: Mon, 9 Sep 2024 15:04:00 -1000 Subject: [PATCH] Issue 10318: Don't skip event callbacks in NetworkEvents::removeEvent --- libraries/Network/src/NetworkEvents.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/Network/src/NetworkEvents.cpp b/libraries/Network/src/NetworkEvents.cpp index 9ebf00b476a..97a002c5468 100644 --- a/libraries/Network/src/NetworkEvents.cpp +++ b/libraries/Network/src/NetworkEvents.cpp @@ -221,6 +221,7 @@ void NetworkEvents::removeEvent(NetworkEventCb cbEvent, arduino_event_id_t event NetworkEventCbList_t entry = cbEventList[i]; if (entry.cb == cbEvent && entry.event == event) { cbEventList.erase(cbEventList.begin() + i); + i--; // Don't skip over any entries in the list } } } @@ -240,6 +241,7 @@ void NetworkEvents::removeEvent(NetworkEventFuncCb cbEvent, arduino_event_id_t e NetworkEventCbList_t entry = cbEventList[i]; if (getStdFunctionAddress(entry.fcb) == getStdFunctionAddress(cbEvent) && entry.event == event) { cbEventList.erase(cbEventList.begin() + i); + i--; // Don't skip over any entries in the list } } } @@ -253,6 +255,7 @@ void NetworkEvents::removeEvent(NetworkEventSysCb cbEvent, arduino_event_id_t ev NetworkEventCbList_t entry = cbEventList[i]; if (entry.scb == cbEvent && entry.event == event) { cbEventList.erase(cbEventList.begin() + i); + i--; // Don't skip over any entries in the list } } } @@ -262,6 +265,7 @@ void NetworkEvents::removeEvent(network_event_handle_t id) { NetworkEventCbList_t entry = cbEventList[i]; if (entry.id == id) { cbEventList.erase(cbEventList.begin() + i); + i--; // Don't skip over any entries in the list } } }