From 037e39b6f5a68ee7ca1de4189591ccc355bae889 Mon Sep 17 00:00:00 2001 From: Justin Viiret Date: Wed, 8 Mar 2017 10:04:20 +1100 Subject: [PATCH] ng_corpus_generator: stop using ptr_vector Nowadays we can use vector>. --- util/ng_corpus_generator.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/util/ng_corpus_generator.cpp b/util/ng_corpus_generator.cpp index 6d0de539..8692a323 100644 --- a/util/ng_corpus_generator.cpp +++ b/util/ng_corpus_generator.cpp @@ -48,15 +48,13 @@ #include #include +#include #include #include #include -#include - using namespace std; using namespace ue2; -using boost::ptr_vector; typedef vector VertexPath; @@ -139,8 +137,8 @@ void findPaths(const NGHolder &g, CorpusProperties &cProps, // limit will evict a random existing one. const size_t MAX_OPEN = min((size_t)1000, corpusLimit * 10); - ptr_vector open; - open.push_back(new VertexPath(1, g.start)); + vector> open; + open.push_back(ue2::make_unique({g.start})); ue2::unordered_set one_way_in; for (const auto &v : vertices_range(g)) { @@ -152,7 +150,8 @@ void findPaths(const NGHolder &g, CorpusProperties &cProps, while (!open.empty()) { u32 slot = cProps.rand(0, open.size() - 1); swap(open.at(slot), open.back()); - ptr_vector::auto_type p = open.pop_back(); + auto p = std::move(open.back()); + open.pop_back(); NFAVertex u = p->back(); DEBUG_PRINTF("dequeuing path %s, back %zu\n", @@ -194,19 +193,19 @@ void findPaths(const NGHolder &g, CorpusProperties &cProps, // If we've got no further adjacent vertices, re-use p rather than // copying it for the next path. - VertexPath *new_path; + unique_ptr new_path; if (boost::next(ai) == ae) { - new_path = p.release(); + new_path = std::move(p); } else { - new_path = new VertexPath(*p); + new_path = make_unique(*p); } new_path->push_back(v); if (open.size() < MAX_OPEN) { - open.push_back(new_path); + open.push_back(std::move(new_path)); } else { u32 victim = cProps.rand(0, open.size() - 1); - open.replace(victim, new_path); + open[victim] = std::move(new_path); } } }