Fix memory issues in std::list

This commit is contained in:
Baptiste Wicht 2016-10-05 20:41:52 +02:00
parent af2c29b812
commit 1d0a5fb11f
No known key found for this signature in database
GPG Key ID: C5566B6C7F884532

View File

@ -289,11 +289,13 @@ private:
tail = node->prev; tail = node->prev;
} }
auto next = node->next;
delete node; delete node;
--_size; --_size;
return iterator(node->next); return iterator(next);
} }
public: public:
@ -307,8 +309,7 @@ public:
iterator erase(iterator it, iterator last){ iterator erase(iterator it, iterator last){
while(it != last){ while(it != last){
erase_node(it.current); it = erase_node(it.current);
++it;
} }
return last; return last;
@ -316,8 +317,7 @@ public:
iterator erase(const_iterator it, const_iterator last){ iterator erase(const_iterator it, const_iterator last){
while(it != last){ while(it != last){
erase_node(it.current); it = erase_node(it.current);
++it;
} }
return iterator(last.current); return iterator(last.current);