summaryrefslogtreecommitdiffstats
path: root/src/ClientHandle.cpp
diff options
context:
space:
mode:
authorpeterbell10 <peterbell10@live.co.uk>2020-03-29 22:58:19 +0200
committerGitHub <noreply@github.com>2020-03-29 22:58:19 +0200
commit6116f899dee33a6d7bd887f7a57ace17df2ab94f (patch)
tree22dd17be6dd84e416124d6a3540feffd81613661 /src/ClientHandle.cpp
parentCorrectly pass cache arguments to cmake in Jenkins build script (diff)
downloadcuberite-6116f899dee33a6d7bd887f7a57ace17df2ab94f.tar
cuberite-6116f899dee33a6d7bd887f7a57ace17df2ab94f.tar.gz
cuberite-6116f899dee33a6d7bd887f7a57ace17df2ab94f.tar.bz2
cuberite-6116f899dee33a6d7bd887f7a57ace17df2ab94f.tar.lz
cuberite-6116f899dee33a6d7bd887f7a57ace17df2ab94f.tar.xz
cuberite-6116f899dee33a6d7bd887f7a57ace17df2ab94f.tar.zst
cuberite-6116f899dee33a6d7bd887f7a57ace17df2ab94f.zip
Diffstat (limited to 'src/ClientHandle.cpp')
-rw-r--r--src/ClientHandle.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp
index 3a0eb1edd..40107153b 100644
--- a/src/ClientHandle.cpp
+++ b/src/ClientHandle.cpp
@@ -163,8 +163,8 @@ void cClientHandle::Destroy(void)
LOGD("%s: destroying client %p, \"%s\" @ %s", __FUNCTION__, static_cast<void *>(this), m_Username.c_str(), m_IPString.c_str());
auto player = m_Player;
- m_Self.reset();
- SetState(csDestroyed); // Tick thread is allowed to call destructor async at any time after this
+ auto Self = std::move(m_Self); // Keep ourself alive for at least as long as this function
+ SetState(csDestroyed);
if (player == nullptr)
{
@@ -3350,7 +3350,7 @@ void cClientHandle::SetSelf(cClientHandlePtr a_Self)
bool cClientHandle::SetState(eState a_NewState)
{
cCSLock Lock(m_CSState);
- if (a_NewState < m_State)
+ if (a_NewState <= m_State)
{
return false; // Can only advance the state machine
}