History

code review

Seth Alves committed 9 years ago

Commit 8a49edb1 parent cf2979d16 files · +54 −51Browse files

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

Unified · Split

libraries/script-engine/src/ScriptEngines.cpp+17−17
@@ -137,14 +137,14 @@ void ScriptEngines::registerScriptInitializer(ScriptInitializer initializer) { · 136 unmodified lines
137 _scriptInitializers.push_back(initializer);137 _scriptInitializers.push_back(initializer);
138}138}
139 139
140void ScriptEngines::addScriptEngine(QSharedPointer<ScriptEngine> engine) {140void ScriptEngines::addScriptEngine(ScriptEnginePointer engine) {
141 if (!_isStopped) {141 if (!_isStopped) {
142 QMutexLocker locker(&_allScriptsMutex);142 QMutexLocker locker(&_allScriptsMutex);
143 _allKnownScriptEngines.insert(engine);143 _allKnownScriptEngines.insert(engine);
144 }144 }
145}145}
146 146
147void ScriptEngines::removeScriptEngine(QSharedPointer<ScriptEngine> engine) {147void ScriptEngines::removeScriptEngine(ScriptEnginePointer engine) {
148 // If we're not already in the middle of stopping all scripts, then we should remove ourselves148 // If we're not already in the middle of stopping all scripts, then we should remove ourselves
149 // from the list of running scripts. We don't do this if we're in the process of stopping all scripts149 // from the list of running scripts. We don't do this if we're in the process of stopping all scripts
150 // because that method removes scripts from its list as it iterates them150 // because that method removes scripts from its list as it iterates them
@@ -159,9 +159,9 @@ void ScriptEngines::shutdownScripting() { · 8 unmodified lines
159 QMutexLocker locker(&_allScriptsMutex);159 QMutexLocker locker(&_allScriptsMutex);
160 qCDebug(scriptengine) << "Stopping all scripts.... currently known scripts:" << _allKnownScriptEngines.size();160 qCDebug(scriptengine) << "Stopping all scripts.... currently known scripts:" << _allKnownScriptEngines.size();
161 161
162 QMutableSetIterator<QSharedPointer<ScriptEngine>> i(_allKnownScriptEngines);162 QMutableSetIterator<ScriptEnginePointer> i(_allKnownScriptEngines);
163 while (i.hasNext()) {163 while (i.hasNext()) {
164 QSharedPointer<ScriptEngine> scriptEngine = i.next();164 ScriptEnginePointer scriptEngine = i.next();
165 QString scriptName = scriptEngine->getFilename();165 QString scriptName = scriptEngine->getFilename();
166 166
167 // NOTE: typically all script engines are running. But there's at least one known exception to this, the167 // NOTE: typically all script engines are running. But there's at least one known exception to this, the
@@ -364,9 +364,9 @@ void ScriptEngines::stopAllScripts(bool restart) { · 196 unmodified lines
364 _isReloading = true;364 _isReloading = true;
365 }365 }
366 366
367 for (QHash<QUrl, QSharedPointer<ScriptEngine>>::const_iterator it = _scriptEnginesHash.constBegin();367 for (QHash<QUrl, ScriptEnginePointer>::const_iterator it = _scriptEnginesHash.constBegin();
368 it != _scriptEnginesHash.constEnd(); it++) {368 it != _scriptEnginesHash.constEnd(); it++) {
369 QSharedPointer<ScriptEngine> scriptEngine = it.value();369 ScriptEnginePointer scriptEngine = it.value();
370 // skip already stopped scripts370 // skip already stopped scripts
371 if (scriptEngine->isFinished() || scriptEngine->isStopping()) {371 if (scriptEngine->isFinished() || scriptEngine->isStopping()) {
372 continue;372 continue;
@@ -412,12 +412,12 @@ bool ScriptEngines::stopScript(const QString& rawScriptURL, bool restart) { · 39 unmodified lines
412 412
413 QReadLocker lock(&_scriptEnginesHashLock);413 QReadLocker lock(&_scriptEnginesHashLock);
414 if (_scriptEnginesHash.contains(scriptURL)) {414 if (_scriptEnginesHash.contains(scriptURL)) {
415 QSharedPointer<ScriptEngine> scriptEngine = _scriptEnginesHash[scriptURL];415 ScriptEnginePointer scriptEngine = _scriptEnginesHash[scriptURL];
416 if (restart) {416 if (restart) {
417 auto scriptCache = DependencyManager::get<ScriptCache>();417 auto scriptCache = DependencyManager::get<ScriptCache>();
418 scriptCache->deleteScript(scriptURL);418 scriptCache->deleteScript(scriptURL);
419 connect(scriptEngine.data(), &ScriptEngine::finished,419 connect(scriptEngine.data(), &ScriptEngine::finished,
420 this, [this](QString scriptName, QSharedPointer<ScriptEngine> engine) {420 this, [this](QString scriptName, ScriptEnginePointer engine) {
421 reloadScript(scriptName);421 reloadScript(scriptName);
422 });422 });
423 }423 }
@@ -445,11 +445,11 @@ void ScriptEngines::reloadAllScripts() { · 21 unmodified lines
445 stopAllScripts(true);445 stopAllScripts(true);
446}446}
447 447
448QSharedPointer<ScriptEngine> ScriptEngines::loadScript(const QUrl& scriptFilename, bool isUserLoaded, bool loadScriptFromEditor,448ScriptEnginePointer ScriptEngines::loadScript(const QUrl& scriptFilename, bool isUserLoaded, bool loadScriptFromEditor,
449 bool activateMainWindow, bool reload) {449 bool activateMainWindow, bool reload) {
450 if (thread() != QThread::currentThread()) {450 if (thread() != QThread::currentThread()) {
451 QSharedPointer<ScriptEngine> result { nullptr };451 ScriptEnginePointer result { nullptr };
452 BLOCKING_INVOKE_METHOD(this, "loadScript", Q_RETURN_ARG(QSharedPointer<ScriptEngine>, result),452 BLOCKING_INVOKE_METHOD(this, "loadScript", Q_RETURN_ARG(ScriptEnginePointer, result),
453 Q_ARG(QUrl, scriptFilename),453 Q_ARG(QUrl, scriptFilename),
454 Q_ARG(bool, isUserLoaded),454 Q_ARG(bool, isUserLoaded),
455 Q_ARG(bool, loadScriptFromEditor),455 Q_ARG(bool, loadScriptFromEditor),
@@ -475,7 +475,7 @@ QSharedPointer<ScriptEngine> ScriptEngines::loadScript(const QUrl& scriptFilenam · 19 unmodified lines
475 return scriptEngine;475 return scriptEngine;
476 }476 }
477 477
478 scriptEngine = QSharedPointer<ScriptEngine>(new ScriptEngine(_context, NO_SCRIPT, "about:" + scriptFilename.fileName()));478 scriptEngine = ScriptEnginePointer(new ScriptEngine(_context, NO_SCRIPT, "about:" + scriptFilename.fileName()));
479 addScriptEngine(scriptEngine);479 addScriptEngine(scriptEngine);
480 scriptEngine->setUserLoaded(isUserLoaded);480 scriptEngine->setUserLoaded(isUserLoaded);
481 481
@@ -493,8 +493,8 @@ QSharedPointer<ScriptEngine> ScriptEngines::loadScript(const QUrl& scriptFilenam · 11 unmodified lines
493 return scriptEngine;493 return scriptEngine;
494}494}
495 495
496QSharedPointer<ScriptEngine> ScriptEngines::getScriptEngine(const QUrl& rawScriptURL) {496ScriptEnginePointer ScriptEngines::getScriptEngine(const QUrl& rawScriptURL) {
497 QSharedPointer<ScriptEngine> result;497 ScriptEnginePointer result;
498 {498 {
499 QReadLocker lock(&_scriptEnginesHashLock);499 QReadLocker lock(&_scriptEnginesHashLock);
500 const QUrl scriptURL = normalizeScriptURL(rawScriptURL);500 const QUrl scriptURL = normalizeScriptURL(rawScriptURL);
@@ -510,7 +510,7 @@ QSharedPointer<ScriptEngine> ScriptEngines::getScriptEngine(const QUrl& rawScrip · 9 unmodified lines
510void ScriptEngines::onScriptEngineLoaded(const QString& rawScriptURL) {510void ScriptEngines::onScriptEngineLoaded(const QString& rawScriptURL) {
511 UserActivityLogger::getInstance().loadedScript(rawScriptURL);511 UserActivityLogger::getInstance().loadedScript(rawScriptURL);
512 QSharedPointer<BaseScriptEngine> baseScriptEngine = qobject_cast<ScriptEngine*>(sender())->sharedFromThis();512 QSharedPointer<BaseScriptEngine> baseScriptEngine = qobject_cast<ScriptEngine*>(sender())->sharedFromThis();
513 QSharedPointer<ScriptEngine> scriptEngine = qSharedPointerCast<ScriptEngine>(baseScriptEngine);513 ScriptEnginePointer scriptEngine = qSharedPointerCast<ScriptEngine>(baseScriptEngine);
514 514
515 launchScriptEngine(scriptEngine);515 launchScriptEngine(scriptEngine);
516 516
@@ -526,7 +526,7 @@ void ScriptEngines::onScriptEngineLoaded(const QString& rawScriptURL) { · 9 unmodified lines
526 emit scriptCountChanged();526 emit scriptCountChanged();
527}527}
528 528
529void ScriptEngines::launchScriptEngine(QSharedPointer<ScriptEngine> scriptEngine) {529void ScriptEngines::launchScriptEngine(ScriptEnginePointer scriptEngine) {
530 connect(scriptEngine.data(), &ScriptEngine::finished, this, &ScriptEngines::onScriptFinished, Qt::DirectConnection);530 connect(scriptEngine.data(), &ScriptEngine::finished, this, &ScriptEngines::onScriptFinished, Qt::DirectConnection);
531 connect(scriptEngine.data(), &ScriptEngine::loadScript, [&](const QString& scriptName, bool userLoaded) {531 connect(scriptEngine.data(), &ScriptEngine::loadScript, [&](const QString& scriptName, bool userLoaded) {
532 loadScript(scriptName, userLoaded);532 loadScript(scriptName, userLoaded);
@@ -552,7 +552,7 @@ void ScriptEngines::launchScriptEngine(QSharedPointer<ScriptEngine> scriptEngine · 19 unmodified lines
552 }552 }
553}553}
554 554
555void ScriptEngines::onScriptFinished(const QString& rawScriptURL, QSharedPointer<ScriptEngine> engine) {555void ScriptEngines::onScriptFinished(const QString& rawScriptURL, ScriptEnginePointer engine) {
556 bool removed = false;556 bool removed = false;
557 {557 {
558 QWriteLocker lock(&_scriptEnginesHashLock);558 QWriteLocker lock(&_scriptEnginesHashLock);