Sat, 16 Apr 2022 21:12:02 +0200
fix memory leak in test data
test/test_list.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/test/test_list.cpp Sat Apr 16 20:44:47 2022 +0200 1.2 +++ b/test/test_list.cpp Sat Apr 16 21:12:02 2022 +0200 1.3 @@ -57,20 +57,26 @@ 1.4 const ptrdiff_t loc_data = offsetof(struct node, data); 1.5 1.6 struct node_test_data { 1.7 - node *begin; 1.8 + node *begin = nullptr; 1.9 1.10 - explicit node_test_data(node *begin) : begin(begin) {} 1.11 - node_test_data(node_test_data&) = delete; 1.12 - node_test_data(node_test_data&&) = default; 1.13 + explicit node_test_data(node *begin) : begin(begin) { 1.14 + auto n = begin; 1.15 + while (n != nullptr) { 1.16 + nodes.push_back(n); 1.17 + n = n->next; 1.18 + } 1.19 + } 1.20 + 1.21 + node_test_data(node_test_data &) = delete; 1.22 + 1.23 + node_test_data(node_test_data &&) = default; 1.24 1.25 ~node_test_data() { 1.26 - auto n = begin; 1.27 - while (n != nullptr) { 1.28 - auto next = n->next; 1.29 - delete n; 1.30 - n = next; 1.31 - } 1.32 + for (auto &&n: nodes) delete n; 1.33 } 1.34 + 1.35 +private: 1.36 + std::vector<node *> nodes; 1.37 }; 1.38 1.39 static node_test_data create_nodes_test_data(size_t len) {