History

prevent Script.include() from including the same file multiple times

Brad Hefta-Gaub committed 11 years ago

Commit ede0a391 parent e8fca7f2 files · +9 −1Browse files

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

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+7−1
@@ -860,7 +860,12 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac · 859 unmodified lines
860860 }
861861 QList<QUrl> urls;
862862 for (QString file : includeFiles) {
863− urls.append(resolvePath(file));
863+ QUrl thisURL { resolvePath(file) };
864+ if (!_includedURLs.contains(thisURL)) {
865+ urls.append(thisURL);
866+ } else {
867+ qCDebug(scriptengine) << "Script.include() ignoring previously included url:" << thisURL;
868+ }
864869 }
865870
866871 BatchLoader* loader = new BatchLoader(urls);
@@ -871,6 +876,7 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac · 4 unmodified lines
871876 if (contents.isNull()) {
872877 qCDebug(scriptengine) << "Error loading file: " << url << "line:" << __LINE__;
873878 } else {
879+ _includedURLs << url;
874880 QScriptValue result = evaluate(contents, url.toString());
875881 }
876882 }