diff --git a/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp b/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp index 986e23b09bb..b9b8d4280c6 100644 --- a/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp +++ b/src/plugins/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp @@ -202,9 +202,15 @@ void QmlProfilerDetailsRewriterTest::seedRewriter() DummyProject *project = new DummyProject(Utils::FileName::fromString(filename)); ProjectExplorer::SessionManager::addProject(project); - std::unique_ptr target = project->createTarget(kit); - m_rewriter.populateFileFinder(target.get()); + { + // 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 target = project->createTarget(kit); + m_rewriter.populateFileFinder(target.get()); + } + ProjectExplorer::SessionManager::removeProject(project); ProjectExplorer::KitManager::deleteKit(kit); }