Browse Source

replace vector::erase, was missed in a previous commit (ref #186)

Moritz Warning 10 years ago
parent
commit
def9cf2a6a
1 changed files with 3 additions and 1 deletions
  1. 3 1
      node/Multicaster.cpp

+ 3 - 1
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();) {
 	for(std::vector<OutboundMulticast>::iterator tx(gs.txQueue.begin());tx!=gs.txQueue.end();) {
 		if (tx->atLimit()) {
 		if (tx->atLimit()) {
-			gs.txQueue.erase(tx++);
+			// erase element (replace by last)
+			*tx = gs.txQueue.back();
+			gs.txQueue.pop_back();
 		} else {
 		} else {
 			tx->sendIfNew(RR,member);
 			tx->sendIfNew(RR,member);
 			if (tx->atLimit()) {
 			if (tx->atLimit()) {