summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Habets <thomas@habets.se>2020-03-22 18:05:56 +0000
committerMartin Braun <martin@gnuradio.org>2020-03-27 08:46:42 -0700
commite917a9b207071b9ad5bd70b65ac4480065d081e1 (patch)
treec355ef5405b10f3c06eb7d598a8f30a36378b825
parent38853cc231adf5ff70051801d19545adbcb1337b (diff)
blocks/udp_sink: Remove manual memory management
-rw-r--r--gr-blocks/lib/udp_sink_impl.cc5
-rw-r--r--gr-blocks/lib/udp_sink_impl.h3
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;