]> git.tdb.fi Git - libs/net.git/blobdiff - source/net/socket.cpp
Use std::unique_ptr for owning pointers
[libs/net.git] / source / net / socket.cpp
index 67bd38137dbe58eba6d76c51df553d90b4f0d3e3..877c1da2b99a31d586b9f5832717411cee96d625 100644 (file)
@@ -11,7 +11,7 @@ namespace Msp {
 namespace Net {
 
 Socket::Socket(const Private &p):
-       priv(new Private)
+       priv(make_unique<Private>())
 {
        mode = IO::M_RDWR;
 
@@ -19,13 +19,13 @@ Socket::Socket(const Private &p):
 
        SockAddr::SysAddr sa;
        getsockname(priv->handle, reinterpret_cast<sockaddr *>(&sa.addr), &sa.size);
-       local_addr = SockAddr::new_from_sys(sa);
+       local_addr.reset(SockAddr::new_from_sys(sa));
 
        platform_init();
 }
 
 Socket::Socket(Family af, int type, int proto):
-       priv(new Private)
+       priv(make_unique<Private>())
 {
        mode = IO::M_RDWR;
 
@@ -38,9 +38,6 @@ Socket::Socket(Family af, int type, int proto):
 Socket::~Socket()
 {
        platform_cleanup();
-
-       delete local_addr;
-       delete priv;
 }
 
 void Socket::set_block(bool b)
@@ -74,8 +71,7 @@ void Socket::bind(const SockAddr &addr)
        if(err==-1)
                throw system_error("bind");
 
-       delete local_addr;
-       local_addr = addr.copy();
+       local_addr.reset(addr.copy());
 }
 
 const SockAddr &Socket::get_local_address() const