fix memory leak in test data

Sat, 16 Apr 2022 21:12:02 +0200

author
Mike Becker <universe@uap-core.de>
date
Sat, 16 Apr 2022 21:12:02 +0200
changeset 520
f937c6d11d1f
parent 519
79d14e821b3a
child 521
e5dc54131d55

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) {

mercurial