aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4engine.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2013-08-15 14:11:19 +0200
committerLars Knoll <lars.knoll@digia.com>2013-08-15 15:28:46 +0200
commitc5c968933b7ce4540cf03ef6964846075cca5bb8 (patch)
treeb50b3daae3c4c4cf07b5a9cd5d90bfdf528eca11 /src/qml/jsruntime/qv4engine.cpp
parent4036d2b17795da106aba8977d3009b7dd4b78e00 (diff)
Fix crashes with unmarked runtime strings
Runtime strings are identifiers, but they still require to be marked. Keep track of all compilation units in the engine (one per file) and mark its run-time strings. Change-Id: Ie70b00dfa373c4567279591de2f717e8103c288f Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4engine.cpp')
-rw-r--r--src/qml/jsruntime/qv4engine.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp
index f346321b3b..764f3fa45f 100644
--- a/src/qml/jsruntime/qv4engine.cpp
+++ b/src/qml/jsruntime/qv4engine.cpp
@@ -789,6 +789,10 @@ void ExecutionEngine::markObjects()
if (m_qmlExtensions)
m_qmlExtensions->markObjects();
+
+ for (QSet<CompiledData::CompilationUnit*>::ConstIterator it = compilationUnits.constBegin(), end = compilationUnits.constEnd();
+ it != end; ++it)
+ (*it)->markObjects();
}
namespace {