QmlProfiler: Avoid double delete in details rewriter test

Using unique_ptr for parented QObjects is maybe not the best idea in the
first place ...

Change-Id: I95e2d1dd27f8f3d42d90d206e4fed0d866d1ea49
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Ulf Hermann
2018-05-25 13:02:11 +02:00
parent 89049b6fa2
commit ae5698fa8e

View File

@@ -202,9 +202,15 @@ void QmlProfilerDetailsRewriterTest::seedRewriter()
DummyProject *project = new DummyProject(Utils::FileName::fromString(filename)); DummyProject *project = new DummyProject(Utils::FileName::fromString(filename));
ProjectExplorer::SessionManager::addProject(project); ProjectExplorer::SessionManager::addProject(project);
std::unique_ptr<ProjectExplorer::Target> target = project->createTarget(kit);
{
// Make sure the uniqe_ptr gets deleted before the project.
// Otherwise we'll get a double free because the target is also parented to the project
// and unique_ptr doesn't know anything about QObject parent/child relationships.
std::unique_ptr<ProjectExplorer::Target> target = project->createTarget(kit);
m_rewriter.populateFileFinder(target.get()); m_rewriter.populateFileFinder(target.get());
}
ProjectExplorer::SessionManager::removeProject(project); ProjectExplorer::SessionManager::removeProject(project);
ProjectExplorer::KitManager::deleteKit(kit); ProjectExplorer::KitManager::deleteKit(kit);
} }