CMake: Use unique_ptr to manage builddirreader

Change-Id: I1acac29bdfa4dfaaf79835636c3e3a4484e8183c
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Tobias Hunger
2019-06-05 15:42:46 +02:00
parent aad9828dca
commit 9e50d47b5c
3 changed files with 6 additions and 6 deletions

View File

@@ -108,7 +108,7 @@ void BuildDirManager::updateReaderType(const BuildDirParameters &p,
std::function<void()> todo)
{
if (!m_reader || !m_reader->isCompatible(p)) {
m_reader.reset(BuildDirReader::createReader(p));
m_reader = BuildDirReader::createReader(p);
connect(m_reader.get(), &BuildDirReader::configurationStarted,
this, &BuildDirManager::parsingStarted);
connect(m_reader.get(), &BuildDirReader::dataAvailable,

View File

@@ -39,13 +39,13 @@ namespace Internal {
// BuildDirReader:
// --------------------------------------------------------------------
BuildDirReader *BuildDirReader::createReader(const BuildDirParameters &p)
std::unique_ptr<BuildDirReader> BuildDirReader::createReader(const BuildDirParameters &p)
{
CMakeTool *cmake = p.cmakeTool();
QTC_ASSERT(p.isValid() && cmake, return nullptr);
QTC_ASSERT(p.isValid() && cmake, return {});
if (cmake->hasServerMode())
return new ServerModeReader;
return new TeaLeafReader;
return std::make_unique<ServerModeReader>();
return std::make_unique<TeaLeafReader>();
}
void BuildDirReader::setParameters(const BuildDirParameters &p)

View File

@@ -52,7 +52,7 @@ class BuildDirReader : public QObject
Q_OBJECT
public:
static BuildDirReader *createReader(const BuildDirParameters &p);
static std::unique_ptr<BuildDirReader> createReader(const BuildDirParameters &p);
virtual void setParameters(const BuildDirParameters &p);
virtual bool isCompatible(const BuildDirParameters &p) = 0;