History

rework ScriptEngine lifetimes using 'smart' pointers

Seth Alves committed 9 years ago

Commit d89f2b71 parent 49ab8af18 files · +135 −146Browse files

Showing the changes to assignment-client/src/scripts/EntityScriptServer.cpp (1 of 18 files). Show all

Unified · Split

assignment-client/src/scripts/EntityScriptServer.cpp+7−5
@@ -415,8 +415,7 @@ void EntityScriptServer::selectAudioFormat(const QString& selectedCodecName) { · 414 unmodified lines
415415
416416 void EntityScriptServer::resetEntitiesScriptEngine() {
417417 auto engineName = QString("about:Entities %1").arg(++_entitiesScriptEngineCount);
418− auto newEngine = QSharedPointer<ScriptEngine>(new ScriptEngine(ScriptEngine::ENTITY_SERVER_SCRIPT, NO_SCRIPT, engineName),
419− &ScriptEngine::deleteLater);
418+ auto newEngine = scriptEngineFactory(ScriptEngine::ENTITY_SERVER_SCRIPT, NO_SCRIPT, engineName);
420419
421420 auto webSocketServerConstructorValue = newEngine->newFunction(WebSocketServerClass::constructor);
422421 newEngine->globalObject().setProperty("WebSocketServer", webSocketServerConstructorValue);
@@ -437,11 +436,14 @@ void EntityScriptServer::resetEntitiesScriptEngine() { · 14 unmodified lines
437436
438437
439438 newEngine->runInThread();
440− DependencyManager::get<EntityScriptingInterface>()->setEntitiesScriptEngine(newEngine.data());
439+ auto newEngineSP = qSharedPointerCast<EntitiesScriptEngineProvider>(newEngine);
440+ DependencyManager::get<EntityScriptingInterface>()->setEntitiesScriptEngine(newEngineSP);
441441
442− disconnect(_entitiesScriptEngine.data(), &ScriptEngine::entityScriptDetailsUpdated, this, &EntityScriptServer::updateEntityPPS);
442+ disconnect(_entitiesScriptEngine.data(), &ScriptEngine::entityScriptDetailsUpdated,
443+ this, &EntityScriptServer::updateEntityPPS);
443444 _entitiesScriptEngine.swap(newEngine);
444− connect(_entitiesScriptEngine.data(), &ScriptEngine::entityScriptDetailsUpdated, this, &EntityScriptServer::updateEntityPPS);
445+ connect(_entitiesScriptEngine.data(), &ScriptEngine::entityScriptDetailsUpdated,
446+ this, &EntityScriptServer::updateEntityPPS);
445447 }
446448
447449