mirror of
https://github.com/overte-org/overte.git
synced 2025-08-13 09:49:45 +02:00
prevent Script.include() from including the same file multiple times
This commit is contained in:
parent
e8fca7f6ae
commit
ede0a39b5b
2 changed files with 9 additions and 1 deletions
|
@ -860,7 +860,12 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac
|
|||
}
|
||||
QList<QUrl> urls;
|
||||
for (QString file : includeFiles) {
|
||||
urls.append(resolvePath(file));
|
||||
QUrl thisURL { resolvePath(file) };
|
||||
if (!_includedURLs.contains(thisURL)) {
|
||||
urls.append(thisURL);
|
||||
} else {
|
||||
qCDebug(scriptengine) << "Script.include() ignoring previously included url:" << thisURL;
|
||||
}
|
||||
}
|
||||
|
||||
BatchLoader* loader = new BatchLoader(urls);
|
||||
|
@ -871,6 +876,7 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac
|
|||
if (contents.isNull()) {
|
||||
qCDebug(scriptengine) << "Error loading file: " << url << "line:" << __LINE__;
|
||||
} else {
|
||||
_includedURLs << url;
|
||||
QScriptValue result = evaluate(contents, url.toString());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/QUrl>
|
||||
#include <QtCore/QSet>
|
||||
#include <QtCore/QWaitCondition>
|
||||
#include <QtScript/QScriptEngine>
|
||||
|
||||
|
@ -152,6 +153,7 @@ protected:
|
|||
Sound* _avatarSound;
|
||||
int _numAvatarSoundSentBytes;
|
||||
bool _isAgent = false;
|
||||
QSet<QUrl> _includedURLs;
|
||||
|
||||
private:
|
||||
void stopAllTimers();
|
||||
|
|
Loading…
Reference in a new issue