diff options
-rw-r--r-- | node/Multicaster.cpp | 4 |
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()) { |