actually reset callbacks in the socket's DoDispose method
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Mon, 23 Mar 2009 13:12:19 +0100
changeset 4357 9c638ff9f732
parent 4281 8827c9df85a3
child 4360 bf9c03ebc855
actually reset callbacks in the socket's DoDispose method
src/node/socket.cc
src/node/socket.h
--- a/src/node/socket.cc	Mon Mar 23 13:03:22 2009 +0100
+++ b/src/node/socket.cc	Mon Mar 23 13:12:19 2009 +0100
@@ -252,6 +252,19 @@
     }
 }
 
+void 
+Socket::DoDispose (void)
+{
+  
+  m_connectionSucceeded = MakeNullCallback<void,Ptr<Socket> > ();
+  m_connectionFailed = MakeNullCallback<void,Ptr<Socket> > ();
+  m_connectionRequest = MakeNullCallback<bool,Ptr<Socket>, const Address &> ();
+  m_newConnectionCreated = MakeNullCallback<void,Ptr<Socket>, const Address &> ();
+  m_dataSent = MakeNullCallback<void,Ptr<Socket>, uint32_t> ();
+  m_sendCb = MakeNullCallback<void,Ptr<Socket>, uint32_t> ();
+  m_receivedData = MakeNullCallback<void,Ptr<Socket> > ();
+}
+
 /***************************************************************
  *           Socket Tags
  ***************************************************************/
--- a/src/node/socket.h	Mon Mar 23 13:03:22 2009 +0100
+++ b/src/node/socket.h	Mon Mar 23 13:12:19 2009 +0100
@@ -499,6 +499,7 @@
   void NotifyDataSent (uint32_t size);
   void NotifySend (uint32_t spaceAvailable);
   void NotifyDataRecv (void);
+  virtual void DoDispose (void);
 private:
   Callback<void, Ptr<Socket> >   m_connectionSucceeded;
   Callback<void, Ptr<Socket> >   m_connectionFailed;