summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--node/Multicaster.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/node/Multicaster.cpp b/node/Multicaster.cpp
index 29e89189..8a15bac1 100644
--- a/node/Multicaster.cpp
+++ b/node/Multicaster.cpp
@@ -330,7 +330,9 @@ void Multicaster::_add(uint64_t now,uint64_t nwid,const MulticastGroup &mg,Multi
for(std::vector<OutboundMulticast>::iterator tx(gs.txQueue.begin());tx!=gs.txQueue.end();) {
if (tx->atLimit()) {
- gs.txQueue.erase(tx++);
+ // erase element (replace by last)
+ *tx = gs.txQueue.back();
+ gs.txQueue.pop_back();
} else {
tx->sendIfNew(RR,member);
if (tx->atLimit()) {