diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2018-01-23 14:05:42 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2018-01-26 05:16:10 +0000 |
commit | f9dc375fbd329e80bda8ceb6e3a425917bb1f4fd (patch) | |
tree | 8744e14bf8bb29f6bff7b8b037711c354a3ef9de | |
parent | fff473c6387b0ab241a9b2e1f6e8843d777befb8 (diff) |
Fix compilation unit memory leak when using qml caching from resources
The unit created via the factory function has a refcount of 1, so we
need to adopt it.
Change-Id: Ia7aadf02c9fc133919f97ea07fc3f3546a7e2680
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r-- | src/qml/jsruntime/qv4script.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4script.cpp b/src/qml/jsruntime/qv4script.cpp index 369ec7d67e..caddf0a3e0 100644 --- a/src/qml/jsruntime/qv4script.cpp +++ b/src/qml/jsruntime/qv4script.cpp @@ -225,7 +225,8 @@ QQmlRefPointer<QV4::CompiledData::CompilationUnit> Script::precompile(QV4::Compi Script *Script::createFromFileOrCache(ExecutionEngine *engine, QmlContext *qmlContext, const QString &fileName, const QUrl &originalUrl) { if (const QQmlPrivate::CachedQmlUnit *cachedUnit = QQmlMetaType::findCachedCompilationUnit(originalUrl)) { - QV4::CompiledData::CompilationUnit *jsUnit = cachedUnit->createCompilationUnit(); + QQmlRefPointer<QV4::CompiledData::CompilationUnit> jsUnit; + jsUnit.adopt(cachedUnit->createCompilationUnit()); return new QV4::Script(engine, qmlContext, jsUnit); } |