From d35dd358d6e4a88a792be60c85bf55d2360c1a71 Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Fri, 7 May 2021 21:45:55 +0200 Subject: [PATCH] Use std::make_unique to make code cleaner Now that we are using C++14, make_unique is available. --- src/db-copy.cpp | 5 ++--- src/geom-transform.cpp | 6 +++--- src/middle-pgsql.cpp | 5 ++--- src/osm2pgsql.cpp | 6 +++--- src/tagtransform-c.cpp | 3 +-- src/tagtransform.cpp | 5 ++--- tests/common-import.hpp | 10 +++++----- tests/test-db-copy-thread.cpp | 12 ++++++------ tests/test-parse-osmium.cpp | 16 ++++++++-------- 9 files changed, 32 insertions(+), 36 deletions(-) diff --git a/src/db-copy.cpp b/src/db-copy.cpp index 6bce74865..9fc734a19 100644 --- a/src/db-copy.cpp +++ b/src/db-copy.cpp @@ -105,15 +105,14 @@ void db_copy_thread_t::sync_and_wait() { std::promise barrier; std::future sync = barrier.get_future(); - add_buffer( - std::unique_ptr(new db_cmd_sync_t{std::move(barrier)})); + add_buffer(std::make_unique(std::move(barrier))); sync.wait(); } void db_copy_thread_t::finish() { if (m_worker.joinable()) { - add_buffer(std::unique_ptr(new db_cmd_finish_t{})); + add_buffer(std::make_unique()); m_worker.join(); } } diff --git a/src/geom-transform.cpp b/src/geom-transform.cpp index 6027d8ce7..62ec17399 100644 --- a/src/geom-transform.cpp +++ b/src/geom-transform.cpp @@ -156,15 +156,15 @@ geom_transform_area_t::run(geom::osmium_builder_t *builder, std::unique_ptr create_geom_transform(char const *type) { if (std::strcmp(type, "point") == 0) { - return std::unique_ptr{new geom_transform_point_t{}}; + return std::make_unique(); } if (std::strcmp(type, "line") == 0) { - return std::unique_ptr{new geom_transform_line_t{}}; + return std::make_unique(); } if (std::strcmp(type, "area") == 0) { - return std::unique_ptr{new geom_transform_area_t{}}; + return std::make_unique(); } throw std::runtime_error{ diff --git a/src/middle-pgsql.cpp b/src/middle-pgsql.cpp index 50a12bfda..51108f6eb 100644 --- a/src/middle-pgsql.cpp +++ b/src/middle-pgsql.cpp @@ -817,9 +817,8 @@ middle_pgsql_t::get_query_instance() { // NOTE: this is thread safe for use in pending async processing only because // during that process they are only read from - std::unique_ptr mid{ - new middle_query_pgsql_t{m_options->database_options.conninfo(), - m_cache, m_persistent_cache}}; + auto mid = std::make_unique( + m_options->database_options.conninfo(), m_cache, m_persistent_cache); // We use a connection per table to enable the use of COPY for (auto &table : m_tables) { diff --git a/src/osm2pgsql.cpp b/src/osm2pgsql.cpp index a125fab8f..0ab06759d 100644 --- a/src/osm2pgsql.cpp +++ b/src/osm2pgsql.cpp @@ -37,10 +37,10 @@ static void run(options_t const &options) middle->set_requirements(output->get_requirements()); - auto dependency_manager = std::unique_ptr( + auto dependency_manager = options.with_forward_dependencies - ? new full_dependency_manager_t{middle} - : new dependency_manager_t{}); + ? std::make_unique(middle) + : std::make_unique(); osmdata_t osmdata{std::move(dependency_manager), middle, output, options}; diff --git a/src/tagtransform-c.cpp b/src/tagtransform-c.cpp index 0f8f2a46f..bd1c48f3c 100644 --- a/src/tagtransform-c.cpp +++ b/src/tagtransform-c.cpp @@ -96,8 +96,7 @@ c_tagtransform_t::c_tagtransform_t(options_t const *options, std::unique_ptr c_tagtransform_t::clone() const { - return std::unique_ptr( - new c_tagtransform_t{m_options, m_export_list}); + return std::make_unique(m_options, m_export_list); } bool c_tagtransform_t::check_key(std::vector const &infos, diff --git a/src/tagtransform.cpp b/src/tagtransform.cpp index 171413113..6bf564170 100644 --- a/src/tagtransform.cpp +++ b/src/tagtransform.cpp @@ -25,7 +25,7 @@ tagtransform_t::make_tagtransform(options_t const *options, #ifdef HAVE_LUA log_debug("Using lua based tag transformations with script {}", options->tag_transform_script); - return std::unique_ptr(new lua_tagtransform_t{options}); + return std::make_unique(options); #else throw std::runtime_error{"Error: Could not init lua tag transform, as " "lua support was not compiled into this " @@ -34,8 +34,7 @@ tagtransform_t::make_tagtransform(options_t const *options, } log_debug("Using built-in tag transformations"); - return std::unique_ptr( - new c_tagtransform_t{options, exlist}); + return std::make_unique(options, exlist); } tagtransform_t::~tagtransform_t() = default; diff --git a/tests/common-import.hpp b/tests/common-import.hpp index 536dc6313..2e5bfdf63 100644 --- a/tests/common-import.hpp +++ b/tests/common-import.hpp @@ -150,10 +150,10 @@ class import_t middle->set_requirements(output->get_requirements()); - auto dependency_manager = std::unique_ptr( + auto dependency_manager = options.with_forward_dependencies - ? new full_dependency_manager_t{middle} - : new dependency_manager_t{}); + ? std::make_unique(middle) + : std::make_unique(); osmdata_t osmdata{std::move(dependency_manager), middle, output, options}; @@ -187,8 +187,8 @@ class import_t middle->set_requirements(output->get_requirements()); - auto dependency_manager = std::unique_ptr( - new full_dependency_manager_t{middle}); + auto dependency_manager = + std::make_unique(middle); parse_file(options, std::move(dependency_manager), middle, output, file); diff --git a/tests/test-db-copy-thread.cpp b/tests/test-db-copy-thread.cpp index 3bb8b2a87..f1d44cd00 100644 --- a/tests/test-db-copy-thread.cpp +++ b/tests/test-db-copy-thread.cpp @@ -34,7 +34,7 @@ TEST_CASE("db_copy_thread_t with db_deleter_by_id_t") db_copy_thread_t t(db.conninfo()); using cmd_copy_t = db_cmd_copy_delete_t; - auto cmd = std::unique_ptr(new cmd_copy_t{table}); + auto cmd = std::make_unique(table); SECTION("simple copy command") { @@ -78,7 +78,7 @@ TEST_CASE("db_copy_thread_t with db_deleter_by_id_t") t.add_buffer(std::unique_ptr(cmd.release())); t.sync_and_wait(); - cmd = std::unique_ptr(new cmd_copy_t{table}); + cmd = std::make_unique(table); SECTION("simple delete of existing rows") { @@ -121,7 +121,7 @@ TEST_CASE("db_copy_thread_t with db_deleter_by_id_t") cmd->buffer += "542\n5543\n10133\n"; t.add_buffer(std::unique_ptr(cmd.release())); - cmd = std::unique_ptr(new cmd_copy_t{table}); + cmd = std::make_unique(table); cmd->buffer += "12\n784\n523\n"; t.add_buffer(std::unique_ptr(cmd.release())); @@ -137,7 +137,7 @@ TEST_CASE("db_copy_thread_t with db_deleter_by_id_t") cmd->buffer += "542\n5543\n10133\n"; t.add_buffer(std::unique_ptr(cmd.release())); - cmd = std::unique_ptr(new cmd_copy_t{table}); + cmd = std::make_unique(table); cmd->add_deletable(542); cmd->buffer += "12\n"; t.add_buffer(std::unique_ptr(cmd.release())); @@ -165,7 +165,7 @@ TEST_CASE("db_copy_thread_t with db_deleter_place_t") db_copy_thread_t t(db.conninfo()); using cmd_copy_t = db_cmd_copy_delete_t; - auto cmd = std::unique_ptr(new cmd_copy_t{table}); + auto cmd = std::make_unique(table); SECTION("simple delete") { @@ -177,7 +177,7 @@ TEST_CASE("db_copy_thread_t with db_deleter_place_t") t.add_buffer(std::unique_ptr(cmd.release())); t.sync_and_wait(); - cmd = std::unique_ptr(new cmd_copy_t{table}); + cmd = std::make_unique(table); SECTION("full delete of existing rows") { diff --git a/tests/test-parse-osmium.cpp b/tests/test-parse-osmium.cpp index 1a89b34ed..91e1cd445 100644 --- a/tests/test-parse-osmium.cpp +++ b/tests/test-parse-osmium.cpp @@ -157,8 +157,8 @@ TEST_CASE("parse xml file") std::shared_ptr output{new counting_output_t{options}}; auto counts = std::make_shared(); - auto dependency_manager = std::unique_ptr( - new counting_dependency_manager_t{counts}); + auto dependency_manager = + std::make_unique(counts); testing::parse_file(options, std::move(dependency_manager), middle, {output}, "test_multipolygon.osm", false); @@ -197,8 +197,8 @@ TEST_CASE("parse diff file") std::shared_ptr output{new counting_output_t{options}}; auto counts = std::make_shared(); - auto dependency_manager = std::unique_ptr( - new counting_dependency_manager_t{counts}); + auto dependency_manager = + std::make_unique(counts); testing::parse_file(options, std::move(dependency_manager), middle, {output}, "008-ch.osc.gz", false); @@ -235,8 +235,8 @@ TEST_CASE("parse xml file with extra args") std::shared_ptr output{new counting_output_t{options}}; auto counts = std::make_shared(); - auto dependency_manager = std::unique_ptr( - new counting_dependency_manager_t{counts}); + auto dependency_manager = + std::make_unique(counts); testing::parse_file(options, std::move(dependency_manager), middle, {output}, "test_multipolygon.osm", false); @@ -275,8 +275,8 @@ TEST_CASE("invalid location") std::shared_ptr output{new counting_output_t{options}}; auto counts = std::make_shared(); - auto dependency_manager = std::unique_ptr( - new counting_dependency_manager_t{counts}); + auto dependency_manager = + std::make_unique(counts); testing::parse_file(options, std::move(dependency_manager), middle, {output}, "test_invalid_location.osm", false);