History

- remove webSockets from List after disconnect. - leave it up to the QtScript to delete the WebSocket / WebSocketServer objects

Thijs Wenker committed 11 years ago

Commit 9edba451 parent f5122053 files · +8 −7Browse files

Showing the changes to libraries/script-engine/src/WebSocketServerClass.cpp (1 of 3 files). Show all

Unified · Split

libraries/script-engine/src/WebSocketServerClass.cpp+4−3
@@ -40,9 +40,7 @@ QScriptValue WebSocketServerClass::constructor(QScriptContext* context, QScriptE · 39 unmodified lines
4040 serverName = serverNameOption.toString();
4141 }
4242 }
43− auto webSocketServerClass = new WebSocketServerClass(engine, serverName, port);
44− connect(static_cast<ScriptEngine*>(engine), &ScriptEngine::finished, webSocketServerClass, &QObject::deleteLater);
45− return engine->newQObject(webSocketServerClass);
43+ return engine->newQObject(new WebSocketServerClass(engine, serverName, port), QScriptEngine::ScriptOwnership);
4644 }
4745
4846 WebSocketServerClass::~WebSocketServerClass() {
@@ -55,6 +53,9 @@ WebSocketServerClass::~WebSocketServerClass() { · 6 unmodified lines
5553 void WebSocketServerClass::onNewConnection() {
5654 WebSocketClass* newClient = new WebSocketClass(_engine, _webSocketServer.nextPendingConnection());
5755 _clients << newClient;
56+ connect(newClient->getWebSocket(), &QWebSocket::disconnected, [newClient, this]() {
57+ _clients.removeOne(newClient);
58+ });
5859 emit newConnection(newClient);
5960 }
6061