diff --git a/libraries/ESP8266WiFi/src/WiFiUdp.cpp b/libraries/ESP8266WiFi/src/WiFiUdp.cpp index 8e304abbb..80b005556 100644 --- a/libraries/ESP8266WiFi/src/WiFiUdp.cpp +++ b/libraries/ESP8266WiFi/src/WiFiUdp.cpp @@ -124,9 +124,10 @@ int WiFiUDP::available() { /* Release any resources being used by this WiFiUDP instance */ void WiFiUDP::stop() { - if (_ctx) + if (_ctx) { _ctx->disconnect(); - _ctx->unref(); + _ctx->unref(); + } _ctx = 0; } @@ -271,6 +272,7 @@ uint16_t WiFiUDP::localPort() void WiFiUDP::stopAll() { for (WiFiUDP* it = _s_first; it; it = it->_next) { + DEBUGV("%s %08x %08x\n", __func__, (uint32_t) it, (uint32_t) _s_first); it->stop(); } } diff --git a/libraries/ESP8266WiFi/src/include/slist.h b/libraries/ESP8266WiFi/src/include/slist.h index 4ce42de6c..3ea09cd48 100644 --- a/libraries/ESP8266WiFi/src/include/slist.h +++ b/libraries/ESP8266WiFi/src/include/slist.h @@ -9,19 +9,21 @@ public: protected: static void _add(T* self) { + DEBUGV("%s %08x %08x\n", __func__, (uint32_t) self, (uint32_t) _s_first); T* tmp = _s_first; _s_first = self; self->_next = tmp; } static void _remove(T* self) { + DEBUGV("%s %08x %08x\n", __func__, (uint32_t) self, (uint32_t) _s_first); if (_s_first == self) { _s_first = self->_next; self->_next = 0; return; } - for (T* prev = _s_first; prev->_next; _s_first = _s_first->_next) { + for (T* prev = _s_first; prev->_next; prev = prev->_next) { if (prev->_next == self) { prev->_next = self->_next; self->_next = 0;