diff options
author | Thomas Habets <thomas@habets.se> | 2020-03-22 18:05:56 +0000 |
---|---|---|
committer | Martin Braun <martin@gnuradio.org> | 2020-03-27 08:46:42 -0700 |
commit | e917a9b207071b9ad5bd70b65ac4480065d081e1 (patch) | |
tree | c355ef5405b10f3c06eb7d598a8f30a36378b825 | |
parent | 38853cc231adf5ff70051801d19545adbcb1337b (diff) |
blocks/udp_sink: Remove manual memory management
-rw-r--r-- | gr-blocks/lib/udp_sink_impl.cc | 5 | ||||
-rw-r--r-- | gr-blocks/lib/udp_sink_impl.h | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/gr-blocks/lib/udp_sink_impl.cc b/gr-blocks/lib/udp_sink_impl.cc index eaf1711172..2ea8bf1fda 100644 --- a/gr-blocks/lib/udp_sink_impl.cc +++ b/gr-blocks/lib/udp_sink_impl.cc @@ -20,6 +20,7 @@ #include <boost/array.hpp> #include <boost/asio.hpp> #include <boost/format.hpp> +#include <boost/make_unique.hpp> #include <stdexcept> namespace gr { @@ -64,7 +65,7 @@ void udp_sink_impl::connect(const std::string& host, int port) host, s_port, boost::asio::ip::resolver_query_base::passive); d_endpoint = *resolver.resolve(query); - d_socket = new boost::asio::ip::udp::socket(d_io_service); + d_socket = boost::make_unique<boost::asio::ip::udp::socket>(d_io_service); d_socket->open(d_endpoint.protocol()); boost::asio::socket_base::reuse_address roption(true); @@ -90,7 +91,7 @@ void udp_sink_impl::disconnect() } d_socket->close(); - delete d_socket; + d_socket.reset(); d_connected = false; } diff --git a/gr-blocks/lib/udp_sink_impl.h b/gr-blocks/lib/udp_sink_impl.h index 238abaca8d..22809f5af4 100644 --- a/gr-blocks/lib/udp_sink_impl.h +++ b/gr-blocks/lib/udp_sink_impl.h @@ -13,6 +13,7 @@ #include <gnuradio/blocks/udp_sink.h> #include <boost/asio.hpp> +#include <memory> namespace gr { namespace blocks { @@ -27,7 +28,7 @@ private: bool d_connected; // are we connected? gr::thread::mutex d_mutex; // protects d_socket and d_connected - boost::asio::ip::udp::socket* d_socket; // handle to socket + std::unique_ptr<boost::asio::ip::udp::socket> d_socket; // handle to socket boost::asio::ip::udp::endpoint d_endpoint; boost::asio::io_service d_io_service; |