From 9bc22655d98fe44ea7fc7319d2040fc1133d376c Mon Sep 17 00:00:00 2001 From: Andrew Stitcher Date: Fri, 9 Oct 2009 03:37:37 +0000 Subject: Fix memory usage error in AsynchConnector git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@823387 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/sys/posix/AsynchIO.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'cpp/src/qpid/sys/posix') diff --git a/cpp/src/qpid/sys/posix/AsynchIO.cpp b/cpp/src/qpid/sys/posix/AsynchIO.cpp index c6d73b059e..31011d6f53 100644 --- a/cpp/src/qpid/sys/posix/AsynchIO.cpp +++ b/cpp/src/qpid/sys/posix/AsynchIO.cpp @@ -161,7 +161,7 @@ class AsynchConnector : public qpid::sys::AsynchConnector, private: void connComplete(DispatchHandle& handle); - void failure(int, std::string); + void failure(int, const std::string&); private: ConnectedCallback connCallback; @@ -174,7 +174,7 @@ public: std::string hostname, uint16_t port, ConnectedCallback connCb, - FailedCallback failCb = 0); + FailedCallback failCb); }; AsynchConnector::AsynchConnector(const Socket& s, @@ -196,7 +196,7 @@ AsynchConnector::AsynchConnector(const Socket& s, socket.connect(hostname, port); startWatch(poller); } catch(std::exception& e) { - failure(-1, std::string(e.what())); + failure(-1, e.what()); } } @@ -209,17 +209,13 @@ void AsynchConnector::connComplete(DispatchHandle& h) connCallback(socket); DispatchHandle::doDelete(); } else { - failure(errCode, std::string(strError(errCode))); + failure(errCode, strError(errCode)); } } -void AsynchConnector::failure(int errCode, std::string message) +void AsynchConnector::failure(int errCode, const std::string& message) { - if (failCallback) - failCallback(errCode, message); - - socket.close(); - delete &socket; + failCallback(socket, errCode, message); DispatchHandle::doDelete(); } -- cgit v1.2.1