diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-12-18 12:00:09 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-12-19 07:04:51 +0100 |
commit | 36e9ecd900fec7e4cc517d829345bd3e8406be59 (patch) | |
tree | 74fbdcd24c5400d1218bd74bf0f2cbda9c443144 /io/source/connector | |
parent | a064fb2008e69c20595f60b6d55dd9d691e2e9e2 (diff) |
use unique_ptr in io
fixing a leak in PipeAcceptor::accept
Change-Id: Id47da5e2a2c4060958aee9233feec859aebc69c7
Reviewed-on: https://gerrit.libreoffice.org/65345
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'io/source/connector')
-rw-r--r-- | io/source/connector/connector.cxx | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/io/source/connector/connector.cxx b/io/source/connector/connector.cxx index 1de3ee92ec2d..c95219d53ab9 100644 --- a/io/source/connector/connector.cxx +++ b/io/source/connector/connector.cxx @@ -85,11 +85,11 @@ namespace stoc_connector { OUString aName(aDesc.getParameter("name")); - PipeConnection *pConn = new PipeConnection( sConnectionDescription ); + std::unique_ptr<PipeConnection> pConn(new PipeConnection( sConnectionDescription )); if( pConn->m_pipe.create( aName.pData, osl_Pipe_OPEN, osl::Security() ) ) { - r.set( static_cast<XConnection *>(pConn) ); + r.set( static_cast<XConnection *>(pConn.release()) ); } else { @@ -97,7 +97,6 @@ namespace stoc_connector "Connector : couldn't connect to pipe " + aName + "(" + OUString::number(pConn->m_pipe.getError()) + ")"); SAL_WARN("io.connector", sMessage); - delete pConn; throw NoConnectException( sMessage ); } } @@ -114,7 +113,7 @@ namespace stoc_connector bool bTcpNoDelay = aDesc.getParameter("tcpnodelay").toInt32() != 0; - SocketConnection *pConn = new SocketConnection( sConnectionDescription); + std::unique_ptr<SocketConnection> pConn(new SocketConnection( sConnectionDescription)); SocketAddr AddrTarget( aHost.pData, nPort ); if(pConn->m_socket.connect(AddrTarget) != osl_Socket_Ok) @@ -123,7 +122,6 @@ namespace stoc_connector OUString sError = pConn->m_socket.getErrorAsString(); sMessage += sError; sMessage += ")"; - delete pConn; throw NoConnectException( sMessage ); } // we enable tcpNoDelay for loopback connections because @@ -135,7 +133,7 @@ namespace stoc_connector sizeof( nTcpNoDelay ) , osl_Socket_LevelTcp ); } pConn->completeConnectionString(); - r.set( static_cast<XConnection *>(pConn) ); + r.set( static_cast<XConnection *>(pConn.release()) ); } else { |