diff options
author | Andy Shaw <andy.shaw@qt.io> | 2019-04-13 00:31:06 +0200 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2019-04-14 08:34:33 +0000 |
commit | 6dac2e7df7fbf0f29667bf92b4e72426db47dbe9 (patch) | |
tree | e6a70e491e90cf88c7ff584b0699234cdd2f9c88 | |
parent | 956099608b98d8f57798f59c8f5367a476e2d5ae (diff) |
Only create the imports array if importCount is greater than 0
Since it is possible that CompilationUnit::instantiate() might be called
more than once when the importCount is 0 then it should only create the
imports array when it is greater than 0. This prevents a memory leak due
to the recreation of this array each time it is called even though there
is no imports to assign.
Change-Id: I5d84b01de10bff2ca25248251e8337839e434bd5
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
-rw-r--r-- | src/qml/compiler/qv4compileddata.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index 9ffcb81fa2..8f2f4a11c1 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -470,8 +470,10 @@ Heap::Module *CompilationUnit::instantiate(ExecutionEngine *engine) ScopedString importName(scope); const uint importCount = data->importEntryTableSize; - imports = new const Value *[importCount]; - memset(imports, 0, importCount * sizeof(Value *)); + if (importCount > 0) { + imports = new const Value *[importCount]; + memset(imports, 0, importCount * sizeof(Value *)); + } for (uint i = 0; i < importCount; ++i) { const CompiledData::ImportEntry &entry = data->importEntryTable()[i]; auto dependentModuleUnit = engine->loadModule(QUrl(stringAt(entry.moduleRequest)), this); |