From 2807258279d8ddbef01ca1c20a87c14aa084620c Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sat, 13 Sep 2014 00:07:21 +0900 Subject: Use std::make_shared and make_unique where possible, part 1 --- src/AsyncNameResolver.cc | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'src/AsyncNameResolver.cc') diff --git a/src/AsyncNameResolver.cc b/src/AsyncNameResolver.cc index 6dab3c11..31b27aa8 100644 --- a/src/AsyncNameResolver.cc +++ b/src/AsyncNameResolver.cc @@ -150,23 +150,18 @@ ares_addr_node* parseAsyncDNSServers(const std::string& serversOpt) ares_addr_node root; root.next = nullptr; ares_addr_node* tail = &root; - ares_addr_node* node = nullptr; for (const auto& s: servers) { - if(node == nullptr) { - node = new ares_addr_node(); - } + auto node = make_unique(); + size_t len = net::getBinAddr(&node->addr, s.c_str()); if(len != 0) { node->next = nullptr; node->family = (len == 4 ? AF_INET : AF_INET6); - tail->next = node; - tail = node; - node = nullptr; + tail->next = node.release(); + tail = tail->next; } } - if(node) { - delete node; - } + return root.next; } -- cgit