Fix MSVC compiler warning about passing this pointer in initializer list
authorsapier <Sapier at GMX dot net>
Fri, 22 Aug 2014 17:25:21 +0000 (19:25 +0200)
committerkwolekr <kwolekr@minetest.net>
Mon, 29 Dec 2014 04:40:44 +0000 (23:40 -0500)
src/connection.cpp
src/connection.h

index cf5be7ed6aaebe4779da849fc8bf932a0e95478a..a9f1d5457694cde30ca91f0d3013d0b470aee8ac 100644 (file)
@@ -1236,10 +1236,9 @@ SharedBuffer<u8> UDPPeer::addSpiltPacket(u8 channel,
 /* Connection Threads                                                         */
 /******************************************************************************/
 
-ConnectionSendThread::ConnectionSendThread(Connection* parent,
-                                                                                       unsigned int max_packet_size,
+ConnectionSendThread::ConnectionSendThread( unsigned int max_packet_size,
                                                                                        float timeout) :
-       m_connection(parent),
+       m_connection(NULL),
        m_max_packet_size(max_packet_size),
        m_timeout(timeout),
        m_max_commands_per_iteration(1),
@@ -1250,6 +1249,7 @@ ConnectionSendThread::ConnectionSendThread(Connection* parent,
 
 void * ConnectionSendThread::Thread()
 {
+       assert(m_connection != NULL);
        ThreadStarted();
        log_register_thread("ConnectionSend");
 
@@ -1995,14 +1995,14 @@ void ConnectionSendThread::sendAsPacket(u16 peer_id, u8 channelnum,
        m_outgoing_queue.push_back(packet);
 }
 
-ConnectionReceiveThread::ConnectionReceiveThread(Connection* parent,
-               unsigned int max_packet_size) :
-       m_connection(parent)
+ConnectionReceiveThread::ConnectionReceiveThread(unsigned int max_packet_size) :
+       m_connection(NULL)
 {
 }
 
 void * ConnectionReceiveThread::Thread()
 {
+       assert(m_connection != NULL);
        ThreadStarted();
        log_register_thread("ConnectionReceive");
 
@@ -2657,8 +2657,8 @@ Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout,
        m_event_queue(),
        m_peer_id(0),
        m_protocol_id(protocol_id),
-       m_sendThread(this, max_packet_size, timeout),
-       m_receiveThread(this, max_packet_size),
+       m_sendThread(max_packet_size, timeout),
+       m_receiveThread(max_packet_size),
        m_info_mutex(),
        m_bc_peerhandler(0),
        m_bc_receive_timeout(0),
@@ -2667,6 +2667,9 @@ Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout,
 {
        m_udpSocket.setTimeoutMs(5);
 
+       m_sendThread.setParent(this);
+       m_receiveThread.setParent(this);
+
        m_sendThread.Start();
        m_receiveThread.Start();
 }
@@ -2678,8 +2681,8 @@ Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout,
        m_event_queue(),
        m_peer_id(0),
        m_protocol_id(protocol_id),
-       m_sendThread(this, max_packet_size, timeout),
-       m_receiveThread(this, max_packet_size),
+       m_sendThread(max_packet_size, timeout),
+       m_receiveThread(max_packet_size),
        m_info_mutex(),
        m_bc_peerhandler(peerhandler),
        m_bc_receive_timeout(0),
@@ -2689,6 +2692,9 @@ Connection::Connection(u32 protocol_id, u32 max_packet_size, float timeout,
 {
        m_udpSocket.setTimeoutMs(5);
 
+       m_sendThread.setParent(this);
+       m_receiveThread.setParent(this);
+
        m_sendThread.Start();
        m_receiveThread.Start();
 
index 516702cb8e19daa5639b0db0749bfcc711df0117..be1627dfa079b6484018d6b187b9309177665b9f 100644 (file)
@@ -918,13 +918,17 @@ class ConnectionSendThread : public JThread {
 public:
        friend class UDPPeer;
 
-       ConnectionSendThread(Connection* parent,
-                                                       unsigned int max_packet_size, float timeout);
+       ConnectionSendThread(unsigned int max_packet_size, float timeout);
 
        void * Thread       ();
 
        void Trigger();
 
+       void setParent(Connection* parent) {
+               assert(parent != NULL);
+               m_connection = parent;
+       }
+
        void setPeerTimeout(float peer_timeout)
                { m_timeout = peer_timeout; }
 
@@ -970,11 +974,15 @@ private:
 
 class ConnectionReceiveThread : public JThread {
 public:
-       ConnectionReceiveThread(Connection* parent,
-                                                       unsigned int max_packet_size);
+       ConnectionReceiveThread(unsigned int max_packet_size);
 
        void * Thread       ();
 
+       void setParent(Connection* parent) {
+               assert(parent != NULL);
+               m_connection = parent;
+       }
+
 private:
        void receive        ();