Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 5 files). Show all
Unified · Split
| @@ -164,7 +164,9 @@ ScriptEnginePointer scriptEngineFactory(ScriptEngine::Context context, · 163 unmodified lines | |||
| 164 | const QString& fileNameString) { | 164 | const QString& fileNameString) { |
| 165 | ScriptEngine* engine = new ScriptEngine(context, scriptContents, fileNameString); | 165 | ScriptEngine* engine = new ScriptEngine(context, scriptContents, fileNameString); |
| 166 | ScriptEnginePointer engineSP = ScriptEnginePointer(engine); | 166 | ScriptEnginePointer engineSP = ScriptEnginePointer(engine); |
| 167 | DependencyManager::get<ScriptEngines>()->addScriptEngine(qSharedPointerCast<ScriptEngine>(engineSP)); | 167 | auto scriptEngines = DependencyManager::get<ScriptEngines>(); |
| 168 | scriptEngines->addScriptEngine(qSharedPointerCast<ScriptEngine>(engineSP)); | ||
| 169 | engine->setScriptEngines(scriptEngines); | ||
| 168 | return engineSP; | 170 | return engineSP; |
| 169 | } | 171 | } |
| 170 | 172 | ||
| @@ -259,7 +261,7 @@ bool ScriptEngine::isDebugMode() const { · 88 unmodified lines | |||
| 259 | } | 261 | } |
| 260 | 262 | ||
| 261 | ScriptEngine::~ScriptEngine() { | 263 | ScriptEngine::~ScriptEngine() { |
| 262 | auto scriptEngines = DependencyManager::get<ScriptEngines>(); | 264 | QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); |
| 263 | if (scriptEngines) { | 265 | if (scriptEngines) { |
| 264 | scriptEngines->removeScriptEngine(qSharedPointerCast<ScriptEngine>(sharedFromThis())); | 266 | scriptEngines->removeScriptEngine(qSharedPointerCast<ScriptEngine>(sharedFromThis())); |
| 265 | } | 267 | } |
| @@ -1012,7 +1014,8 @@ QScriptValue ScriptEngine::evaluateInClosure(const QScriptValue& closure, const · 746 unmodified lines | |||
| 1012 | } | 1014 | } |
| 1013 | 1015 | ||
| 1014 | QScriptValue ScriptEngine::evaluate(const QString& sourceCode, const QString& fileName, int lineNumber) { | 1016 | QScriptValue ScriptEngine::evaluate(const QString& sourceCode, const QString& fileName, int lineNumber) { |
| 1015 | if (DependencyManager::get<ScriptEngines>()->isStopped()) { | 1017 | QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); |
| 1018 | if (!scriptEngines || scriptEngines->isStopped()) { | ||
| 1016 | return QScriptValue(); // bail early | 1019 | return QScriptValue(); // bail early |
| 1017 | } | 1020 | } |
| 1018 | 1021 | ||
| @@ -1062,7 +1065,8 @@ void ScriptEngine::run() { · 43 unmodified lines | |||
| 1062 | auto name = filenameParts.size() > 0 ? filenameParts[filenameParts.size() - 1] : "unknown"; | 1065 | auto name = filenameParts.size() > 0 ? filenameParts[filenameParts.size() - 1] : "unknown"; |
| 1063 | PROFILE_SET_THREAD_NAME("Script: " + name); | 1066 | PROFILE_SET_THREAD_NAME("Script: " + name); |
| 1064 | 1067 | ||
| 1065 | if (DependencyManager::get<ScriptEngines>()->isStopped()) { | 1068 | QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); |
| 1069 | if (!scriptEngines || scriptEngines->isStopped()) { | ||
| 1066 | return; // bail early - avoid setting state in init(), as evaluate() will bail too | 1070 | return; // bail early - avoid setting state in init(), as evaluate() will bail too |
| 1067 | } | 1071 | } |
| 1068 | 1072 | ||
| @@ -1319,7 +1323,7 @@ void ScriptEngine::updateMemoryCost(const qint64& deltaSize) { · 250 unmodified lines | |||
| 1319 | 1323 | ||
| 1320 | void ScriptEngine::timerFired() { | 1324 | void ScriptEngine::timerFired() { |
| 1321 | { | 1325 | { |
| 1322 | auto engine = DependencyManager::get<ScriptEngines>(); | 1326 | QSharedPointer<ScriptEngines> engine(_scriptEngines); |
| 1323 | if (!engine || engine->isStopped()) { | 1327 | if (!engine || engine->isStopped()) { |
| 1324 | scriptWarningMessage("Script.timerFired() while shutting down is ignored... parent script:" + getFilename()); | 1328 | scriptWarningMessage("Script.timerFired() while shutting down is ignored... parent script:" + getFilename()); |
| 1325 | return; // bail early | 1329 | return; // bail early |
| @@ -1373,7 +1377,8 @@ QObject* ScriptEngine::setupTimerWithInterval(const QScriptValue& function, int · 47 unmodified lines | |||
| 1373 | } | 1377 | } |
| 1374 | 1378 | ||
| 1375 | QObject* ScriptEngine::setInterval(const QScriptValue& function, int intervalMS) { | 1379 | QObject* ScriptEngine::setInterval(const QScriptValue& function, int intervalMS) { |
| 1376 | if (DependencyManager::get<ScriptEngines>()->isStopped()) { | 1380 | QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); |
| 1381 | if (!scriptEngines || scriptEngines->isStopped()) { | ||
| 1377 | scriptWarningMessage("Script.setInterval() while shutting down is ignored... parent script:" + getFilename()); | 1382 | scriptWarningMessage("Script.setInterval() while shutting down is ignored... parent script:" + getFilename()); |
| 1378 | return NULL; // bail early | 1383 | return NULL; // bail early |
| 1379 | } | 1384 | } |
| @@ -1382,7 +1387,8 @@ QObject* ScriptEngine::setInterval(const QScriptValue& function, int intervalMS) · 2 unmodified lines | |||
| 1382 | } | 1387 | } |
| 1383 | 1388 | ||
| 1384 | QObject* ScriptEngine::setTimeout(const QScriptValue& function, int timeoutMS) { | 1389 | QObject* ScriptEngine::setTimeout(const QScriptValue& function, int timeoutMS) { |
| 1385 | if (DependencyManager::get<ScriptEngines>()->isStopped()) { | 1390 | QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); |
| 1391 | if (!scriptEngines || scriptEngines->isStopped()) { | ||
| 1386 | scriptWarningMessage("Script.setTimeout() while shutting down is ignored... parent script:" + getFilename()); | 1392 | scriptWarningMessage("Script.setTimeout() while shutting down is ignored... parent script:" + getFilename()); |
| 1387 | return NULL; // bail early | 1393 | return NULL; // bail early |
| 1388 | } | 1394 | } |
| @@ -1813,7 +1819,8 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac · 424 unmodified lines | |||
| 1813 | if (!IS_THREADSAFE_INVOCATION(thread(), __FUNCTION__)) { | 1819 | if (!IS_THREADSAFE_INVOCATION(thread(), __FUNCTION__)) { |
| 1814 | return; | 1820 | return; |
| 1815 | } | 1821 | } |
| 1816 | if (DependencyManager::get<ScriptEngines>()->isStopped()) { | 1822 | QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); |
| 1823 | if (!scriptEngines || scriptEngines->isStopped()) { | ||
| 1817 | scriptWarningMessage("Script.include() while shutting down is ignored... includeFiles:" | 1824 | scriptWarningMessage("Script.include() while shutting down is ignored... includeFiles:" |
| 1818 | + includeFiles.join(",") + "parent script:" + getFilename()); | 1825 | + includeFiles.join(",") + "parent script:" + getFilename()); |
| 1819 | return; // bail early | 1826 | return; // bail early |
| @@ -1907,7 +1914,8 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac · 87 unmodified lines | |||
| 1907 | } | 1914 | } |
| 1908 | 1915 | ||
| 1909 | void ScriptEngine::include(const QString& includeFile, QScriptValue callback) { | 1916 | void ScriptEngine::include(const QString& includeFile, QScriptValue callback) { |
| 1910 | if (DependencyManager::get<ScriptEngines>()->isStopped()) { | 1917 | QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); |
| 1918 | if (!scriptEngines || scriptEngines->isStopped()) { | ||
| 1911 | scriptWarningMessage("Script.include() while shutting down is ignored... includeFile:" | 1919 | scriptWarningMessage("Script.include() while shutting down is ignored... includeFile:" |
| 1912 | + includeFile + "parent script:" + getFilename()); | 1920 | + includeFile + "parent script:" + getFilename()); |
| 1913 | return; // bail early | 1921 | return; // bail early |
| @@ -1925,7 +1933,8 @@ void ScriptEngine::load(const QString& loadFile) { · 11 unmodified lines | |||
| 1925 | if (!IS_THREADSAFE_INVOCATION(thread(), __FUNCTION__)) { | 1933 | if (!IS_THREADSAFE_INVOCATION(thread(), __FUNCTION__)) { |
| 1926 | return; | 1934 | return; |
| 1927 | } | 1935 | } |
| 1928 | if (DependencyManager::get<ScriptEngines>()->isStopped()) { | 1936 | QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); |
| 1937 | if (!scriptEngines || scriptEngines->isStopped()) { | ||
| 1929 | scriptWarningMessage("Script.load() while shutting down is ignored... loadFile:" | 1938 | scriptWarningMessage("Script.load() while shutting down is ignored... loadFile:" |
| 1930 | + loadFile + "parent script:" + getFilename()); | 1939 | + loadFile + "parent script:" + getFilename()); |
| 1931 | return; // bail early | 1940 | return; // bail early |
| @@ -2073,10 +2082,11 @@ void ScriptEngine::loadEntityScript(const EntityItemID& entityID, const QString& · 141 unmodified lines | |||
| 2073 | } | 2082 | } |
| 2074 | PROFILE_RANGE(script, __FUNCTION__); | 2083 | PROFILE_RANGE(script, __FUNCTION__); |
| 2075 | 2084 | ||
| 2076 | if (isStopping() || DependencyManager::get<ScriptEngines>()->isStopped()) { | 2085 | QSharedPointer<ScriptEngines> scriptEngines(_scriptEngines); |
| 2086 | if (isStopping() || !scriptEngines || scriptEngines->isStopped()) { | ||
| 2077 | qCDebug(scriptengine) << "loadEntityScript.start " << entityID.toString() | 2087 | qCDebug(scriptengine) << "loadEntityScript.start " << entityID.toString() |
| 2078 | << " but isStopping==" << isStopping() | 2088 | << " but isStopping==" << isStopping() |
| 2079 | << " || engines->isStopped==" << DependencyManager::get<ScriptEngines>()->isStopped(); | 2089 | << " || engines->isStopped==" << scriptEngines->isStopped(); |
| 2080 | return; | 2090 | return; |
| 2081 | } | 2091 | } |
| 2082 | 2092 | ||