diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-08-30 14:44:56 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-09-03 08:30:51 +0000 |
commit | 106a2b5877a26a4cd7a1c9e9542e0dc392cb2437 (patch) | |
tree | d0f1e6981a0e1cc8049cc376f8ebbb3ca6d0fb0a | |
parent | 89689cac88ffe880942c7acb59fc3374a34cbd6c (diff) | |
download | qbs-106a2b5877a26a4cd7a1c9e9542e0dc392cb2437.tar.gz |
ModuleLoader: Fix memory leak
One of the allocations was not exeception-safe.
Change-Id: Ib367f9f2e5e65d0813465d5dcbf9dc779418bdfc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r-- | src/lib/corelib/language/moduleloader.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index 79748d451..583354c4d 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -597,7 +597,7 @@ void ModuleLoader::handleProject(ModuleLoaderResult *loadResult, TopLevelProjectContext *topLevelProjectContext, Item *projectItem, const Set<QString> &referencedFilePaths) { - auto p = new ProjectContext; + QScopedPointer<ProjectContext> p(new ProjectContext); auto &projectContext = *p; projectContext.topLevelProject = topLevelProjectContext; projectContext.result = loadResult; @@ -623,9 +623,9 @@ void ModuleLoader::handleProject(ModuleLoaderResult *loadResult, m_parameters.overriddenValuesTree()); if (!checkItemCondition(projectItem)) { m_disabledProjects.insert(projectContext.name); - delete p; return; } + p.take(); topLevelProjectContext->projects.push_back(&projectContext); m_reader->pushExtraSearchPaths(readExtraSearchPaths(projectItem) << projectItem->file()->dirPath()); |