summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qdeclarativecompiler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/qml/qdeclarativecompiler.cpp')
-rw-r--r--src/declarative/qml/qdeclarativecompiler.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp
index f73de7f3..ab321203 100644
--- a/src/declarative/qml/qdeclarativecompiler.cpp
+++ b/src/declarative/qml/qdeclarativecompiler.cpp
@@ -662,7 +662,8 @@ void QDeclarativeCompiler::compileTree(QDeclarativeParser::Object *tree)
output->bytecode << init;
// Build global import scripts
- QHash<QString, Object::ScriptBlock> importedScripts;
+ QSet<QString> importedScripts;
+ QList<Object::ScriptBlock> importedScriptList;
QStringList importedScriptIndexes;
foreach (const QDeclarativeTypeData::ScriptReference &script, unit->resolvedScripts()) {
@@ -672,24 +673,23 @@ void QDeclarativeCompiler::compileTree(QDeclarativeParser::Object *tree)
Q_ASSERT(!importedScripts.contains(script.qualifier));
if (!scriptCode.isEmpty()) {
- Object::ScriptBlock &scriptBlock = importedScripts[script.qualifier];
+ importedScripts.insert(script.qualifier);
+ Object::ScriptBlock scriptBlock;
scriptBlock.code = scriptCode;
scriptBlock.file = script.script->finalUrl().toString();
scriptBlock.pragmas = pragmas;
+ importedScriptList.append(scriptBlock);
+ importedScriptIndexes.append(script.qualifier);
}
}
- for (QHash<QString, Object::ScriptBlock>::Iterator iter = importedScripts.begin();
- iter != importedScripts.end(); ++iter) {
-
- importedScriptIndexes.append(iter.key());
-
+ for (int i = 0; i < importedScriptList.count(); ++i) {
QDeclarativeInstruction import;
import.type = QDeclarativeInstruction::StoreImportedScript;
import.line = 0;
import.storeScript.value = output->scripts.count();
- output->scripts << *iter;
+ output->scripts << importedScriptList.at(i);
output->bytecode << import;
}