aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/moduleloader.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-08-30 14:44:56 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-09-03 08:30:51 +0000
commit106a2b5877a26a4cd7a1c9e9542e0dc392cb2437 (patch)
treed0f1e6981a0e1cc8049cc376f8ebbb3ca6d0fb0a /src/lib/corelib/language/moduleloader.cpp
parent89689cac88ffe880942c7acb59fc3374a34cbd6c (diff)
ModuleLoader: Fix memory leak
One of the allocations was not exeception-safe. Change-Id: Ib367f9f2e5e65d0813465d5dcbf9dc779418bdfc Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/lib/corelib/language/moduleloader.cpp')
-rw-r--r--src/lib/corelib/language/moduleloader.cpp4
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());