KitManager: Use unique_ptr to manage kits

Change-Id: I8c66290f0d23afe37673bd858f7db135c8232a78
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
Tobias Hunger
2018-07-16 15:32:23 +02:00
parent df2b2f1a17
commit f685e2bfb4
13 changed files with 151 additions and 158 deletions

View File

@@ -46,15 +46,16 @@ void QmlProfilerAttachDialogTest::testAccessors()
dialog.setPort(4444);
QCOMPARE(dialog.port(), 4444);
ProjectExplorer::Kit *newKit = new ProjectExplorer::Kit("dings");
auto newKit = std::make_unique<ProjectExplorer::Kit>("dings");
ProjectExplorer::Kit *newKitPtr = newKit.get();
ProjectExplorer::KitManager *kitManager = ProjectExplorer::KitManager::instance();
QVERIFY(kitManager);
QVERIFY(kitManager->registerKit(newKit));
QVERIFY(kitManager->registerKit(std::move(newKit)));
dialog.setKitId("dings");
QCOMPARE(dialog.kit(), newKit);
QCOMPARE(dialog.kit(), newKitPtr);
kitManager->deregisterKit(newKit);
kitManager->deregisterKit(newKitPtr);
}
} // namespace Internal

View File

@@ -229,9 +229,9 @@ void QmlProfilerDetailsRewriterTest::seedRewriter()
doc->parse();
QVERIFY(!doc->source().isEmpty());
ProjectExplorer::Kit *kit = new ProjectExplorer::Kit;
auto kit = std::make_unique<ProjectExplorer::Kit>();
ProjectExplorer::SysRootKitInformation::setSysRoot(
kit, Utils::FileName::fromLatin1("/nowhere"));
kit.get(), Utils::FileName::fromLatin1("/nowhere"));
DummyProject *project = new DummyProject(Utils::FileName::fromString(filename));
ProjectExplorer::SessionManager::addProject(project);
@@ -240,12 +240,11 @@ void QmlProfilerDetailsRewriterTest::seedRewriter()
// 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);
std::unique_ptr<ProjectExplorer::Target> target = project->createTarget(kit.get());
m_rewriter.populateFileFinder(target.get());
}
ProjectExplorer::SessionManager::removeProject(project);
ProjectExplorer::KitManager::deleteKit(kit);
}
} // namespace Internal

View File

@@ -44,13 +44,14 @@ namespace Internal {
void QmlProfilerToolTest::testAttachToWaitingApplication()
{
ProjectExplorer::Kit *newKit = new ProjectExplorer::Kit("fookit");
auto newKit = std::make_unique<ProjectExplorer::Kit>("fookit");
ProjectExplorer::Kit * newKitPtr = newKit.get();
ProjectExplorer::KitManager *kitManager = ProjectExplorer::KitManager::instance();
QVERIFY(kitManager);
QVERIFY(kitManager->registerKit(newKit));
QVERIFY(kitManager->registerKit(std::move(newKit)));
QSettings *settings = Core::ICore::settings();
QVERIFY(settings);
settings->setValue(QLatin1String("AnalyzerQmlAttachDialog/kitId"), newKit->id().toSetting());
settings->setValue(QLatin1String("AnalyzerQmlAttachDialog/kitId"), newKitPtr->id().toSetting());
QmlProfilerTool profilerTool;
QTcpServer server;