aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoïc Blot <loic.blot@unix-experience.fr>2017-08-28 17:12:30 +0200
committerLoïc Blot <loic.blot@unix-experience.fr>2017-08-28 17:12:46 +0200
commit6fd8a27c91b09f51693243586af3615f962d1730 (patch)
tree17a22d5e185cb6171a89343b090a3661edfe8306
parent04158d0c848b73bb9d4615c605fe51a180ba9d2c (diff)
downloadminetest-6fd8a27c91b09f51693243586af3615f962d1730.tar.gz
minetest-6fd8a27c91b09f51693243586af3615f962d1730.tar.bz2
minetest-6fd8a27c91b09f51693243586af3615f962d1730.zip
Pass SharedBuffer as value to increment reference count
This should fix #6332 Refcount is not increased due to reference, it can make this refcount incorrect in a multithread context
-rw-r--r--src/network/connectionthreads.cpp10
-rw-r--r--src/network/connectionthreads.h12
2 files changed, 11 insertions, 11 deletions
diff --git a/src/network/connectionthreads.cpp b/src/network/connectionthreads.cpp
index b07acd469..63c1855c5 100644
--- a/src/network/connectionthreads.cpp
+++ b/src/network/connectionthreads.cpp
@@ -1098,7 +1098,7 @@ bool ConnectionReceiveThread::checkIncomingBuffers(Channel *channel,
}
SharedBuffer<u8> ConnectionReceiveThread::processPacket(Channel *channel,
- SharedBuffer<u8> &packetdata, u16 peer_id, u8 channelnum, bool reliable)
+ SharedBuffer<u8> packetdata, u16 peer_id, u8 channelnum, bool reliable)
{
PeerHelper peer = m_connection->getPeerNoEx(peer_id);
@@ -1137,7 +1137,7 @@ const ConnectionReceiveThread::PacketTypeHandler
};
SharedBuffer<u8> ConnectionReceiveThread::handlePacketType_Control(Channel *channel,
- SharedBuffer<u8> &packetdata, Peer *peer, u8 channelnum, bool reliable)
+ SharedBuffer<u8> packetdata, Peer *peer, u8 channelnum, bool reliable)
{
if (packetdata.getSize() < 2)
throw InvalidIncomingDataException("packetdata.getSize() < 2");
@@ -1247,7 +1247,7 @@ SharedBuffer<u8> ConnectionReceiveThread::handlePacketType_Control(Channel *chan
}
SharedBuffer<u8> ConnectionReceiveThread::handlePacketType_Original(Channel *channel,
- SharedBuffer<u8> &packetdata, Peer *peer, u8 channelnum, bool reliable)
+ SharedBuffer<u8> packetdata, Peer *peer, u8 channelnum, bool reliable)
{
if (packetdata.getSize() <= ORIGINAL_HEADER_SIZE)
throw InvalidIncomingDataException
@@ -1261,7 +1261,7 @@ SharedBuffer<u8> ConnectionReceiveThread::handlePacketType_Original(Channel *cha
}
SharedBuffer<u8> ConnectionReceiveThread::handlePacketType_Split(Channel *channel,
- SharedBuffer<u8> &packetdata, Peer *peer, u8 channelnum, bool reliable)
+ SharedBuffer<u8> packetdata, Peer *peer, u8 channelnum, bool reliable)
{
Address peer_address;
@@ -1292,7 +1292,7 @@ SharedBuffer<u8> ConnectionReceiveThread::handlePacketType_Split(Channel *channe
}
SharedBuffer<u8> ConnectionReceiveThread::handlePacketType_Reliable(Channel *channel,
- SharedBuffer<u8> &packetdata, Peer *peer, u8 channelnum, bool reliable)
+ SharedBuffer<u8> packetdata, Peer *peer, u8 channelnum, bool reliable)
{
assert(channel != NULL);
diff --git a/src/network/connectionthreads.h b/src/network/connectionthreads.h
index 11bec0c6c..c2314f87f 100644
--- a/src/network/connectionthreads.h
+++ b/src/network/connectionthreads.h
@@ -118,26 +118,26 @@ private:
channelnum: channel on which the packet was sent
reliable: true if recursing into a reliable packet
*/
- SharedBuffer<u8> processPacket(Channel *channel, SharedBuffer<u8> &packetdata,
+ SharedBuffer<u8> processPacket(Channel *channel, SharedBuffer<u8> packetdata,
u16 peer_id, u8 channelnum, bool reliable);
SharedBuffer<u8> handlePacketType_Control(Channel *channel,
- SharedBuffer<u8> &packetdata, Peer *peer, u8 channelnum,
+ SharedBuffer<u8> packetdata, Peer *peer, u8 channelnum,
bool reliable);
SharedBuffer<u8> handlePacketType_Original(Channel *channel,
- SharedBuffer<u8> &packetdata, Peer *peer, u8 channelnum,
+ SharedBuffer<u8> packetdata, Peer *peer, u8 channelnum,
bool reliable);
SharedBuffer<u8> handlePacketType_Split(Channel *channel,
- SharedBuffer<u8> &packetdata, Peer *peer, u8 channelnum,
+ SharedBuffer<u8> packetdata, Peer *peer, u8 channelnum,
bool reliable);
SharedBuffer<u8> handlePacketType_Reliable(Channel *channel,
- SharedBuffer<u8> &packetdata, Peer *peer, u8 channelnum,
+ SharedBuffer<u8> packetdata, Peer *peer, u8 channelnum,
bool reliable);
struct PacketTypeHandler
{
SharedBuffer<u8> (ConnectionReceiveThread::*handler)(Channel *channel,
- SharedBuffer<u8> &packet, Peer *peer, u8 channelnum,
+ SharedBuffer<u8> packet, Peer *peer, u8 channelnum,
bool reliable);
};