forked from qt-creator/qt-creator
CMake: Use unique_ptr to manage builddirreader
Change-Id: I1acac29bdfa4dfaaf79835636c3e3a4484e8183c Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -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,
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user