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 } } }