Skip to content

Commit 07537a3

Browse files
committed
websocketserver: Check for EventHandler validity in de/constructor
Redundant fix for shutdown crash
1 parent efeae8d commit 07537a3

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/websocketserver/WebSocketServer.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,21 @@ WebSocketServer::WebSocketServer() : QObject(nullptr)
4949
websocketpp::lib::placeholders::_2));
5050

5151
auto eventHandler = GetEventHandler();
52-
eventHandler->SetBroadcastCallback(std::bind(&WebSocketServer::BroadcastEvent, this, std::placeholders::_1,
53-
std::placeholders::_2, std::placeholders::_3, std::placeholders::_4));
54-
55-
eventHandler->SetObsReadyCallback(std::bind(&WebSocketServer::onObsReady, this, std::placeholders::_1));
52+
if (eventHandler) {
53+
eventHandler->SetBroadcastCallback(std::bind(&WebSocketServer::BroadcastEvent, this, std::placeholders::_1,
54+
std::placeholders::_2, std::placeholders::_3, std::placeholders::_4));
55+
eventHandler->SetObsReadyCallback(std::bind(&WebSocketServer::onObsReady, this, std::placeholders::_1));
56+
}
5657
}
5758

5859
WebSocketServer::~WebSocketServer()
5960
{
61+
auto eventHandler = GetEventHandler();
62+
if (eventHandler) {
63+
eventHandler->SetObsReadyCallback(nullptr);
64+
eventHandler->SetBroadcastCallback(nullptr);
65+
}
66+
6067
if (_server.is_listening())
6168
Stop();
6269
}

0 commit comments

Comments
 (0)