From 1d0a5fb11fdd0ebb66efaafe29e14e77caf04598 Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Wed, 5 Oct 2016 20:41:52 +0200 Subject: [PATCH] Fix memory issues in std::list --- tstl/include/list.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tstl/include/list.hpp b/tstl/include/list.hpp index da82f43b..930d35bd 100644 --- a/tstl/include/list.hpp +++ b/tstl/include/list.hpp @@ -289,11 +289,13 @@ private: tail = node->prev; } + auto next = node->next; + delete node; --_size; - return iterator(node->next); + return iterator(next); } public: @@ -307,8 +309,7 @@ public: iterator erase(iterator it, iterator last){ while(it != last){ - erase_node(it.current); - ++it; + it = erase_node(it.current); } return last; @@ -316,8 +317,7 @@ public: iterator erase(const_iterator it, const_iterator last){ while(it != last){ - erase_node(it.current); - ++it; + it = erase_node(it.current); } return iterator(last.current);