summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmConnection.cxx5
-rw-r--r--Source/cmServerConnection.cxx3
2 files changed, 7 insertions, 1 deletions
diff --git a/Source/cmConnection.cxx b/Source/cmConnection.cxx
index 89013dc..c0d1b82 100644
--- a/Source/cmConnection.cxx
+++ b/Source/cmConnection.cxx
@@ -118,7 +118,9 @@ void cmEventBasedConnection::OnDisconnect(int onerror)
{
(void)onerror;
this->OnConnectionShuttingDown();
- this->Server->OnDisconnect(this);
+ if (this->Server) {
+ this->Server->OnDisconnect(this);
+ }
}
cmConnection::~cmConnection()
@@ -127,6 +129,7 @@ cmConnection::~cmConnection()
bool cmConnection::OnConnectionShuttingDown()
{
+ this->Server = nullptr;
return true;
}
diff --git a/Source/cmServerConnection.cxx b/Source/cmServerConnection.cxx
index e686403..44af75f 100644
--- a/Source/cmServerConnection.cxx
+++ b/Source/cmServerConnection.cxx
@@ -53,6 +53,9 @@ void cmStdIoConnection::SetupStream(uv_stream_t*& stream, int file_id)
void cmStdIoConnection::SetServer(cmServerBase* s)
{
cmConnection::SetServer(s);
+ if (!s) {
+ return;
+ }
SetupStream(this->ReadStream, 0);
SetupStream(this->WriteStream, 1);