Skip to content

Commit 43b9ee3

Browse files
committed
replace QPointer with std::uniqur_ptr in PerfRecord
1 parent 61edfec commit 43b9ee3

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

src/perfrecord.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ PerfRecord::~PerfRecord()
5858
stopRecording();
5959
if (m_perfRecordProcess) {
6060
m_perfRecordProcess->waitForFinished(100);
61-
delete m_perfRecordProcess;
6261
}
6362
}
6463

@@ -70,9 +69,8 @@ bool PerfRecord::runPerf(bool elevatePrivileges, const QStringList& perfOptions,
7069
m_perfControlFifo.requestStop();
7170
m_perfControlFifo.close();
7271
m_perfRecordProcess->kill();
73-
m_perfRecordProcess->deleteLater();
7472
}
75-
m_perfRecordProcess = new QProcess(this);
73+
m_perfRecordProcess = std::make_unique<QProcess>(this);
7674
m_perfRecordProcess->setProcessChannelMode(QProcess::MergedChannels);
7775

7876
const auto outputFileInfo = QFileInfo(outputPath);
@@ -91,7 +89,7 @@ bool PerfRecord::runPerf(bool elevatePrivileges, const QStringList& perfOptions,
9189
return false;
9290
}
9391

94-
connect(m_perfRecordProcess.data(), static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished),
92+
connect(m_perfRecordProcess.get(), static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished),
9593
this, [this](int exitCode, QProcess::ExitStatus exitStatus) {
9694
Q_UNUSED(exitStatus)
9795

@@ -108,17 +106,17 @@ bool PerfRecord::runPerf(bool elevatePrivileges, const QStringList& perfOptions,
108106
m_userTerminated = false;
109107
});
110108

111-
connect(m_perfRecordProcess.data(), &QProcess::errorOccurred, this, [this](QProcess::ProcessError error) {
109+
connect(m_perfRecordProcess.get(), &QProcess::errorOccurred, this, [this](QProcess::ProcessError error) {
112110
Q_UNUSED(error)
113111
if (!m_userTerminated) {
114112
emit recordingFailed(m_perfRecordProcess->errorString());
115113
}
116114
});
117115

118-
connect(m_perfRecordProcess.data(), &QProcess::started, this,
116+
connect(m_perfRecordProcess.get(), &QProcess::started, this,
119117
[this] { emit recordingStarted(m_perfRecordProcess->program(), m_perfRecordProcess->arguments()); });
120118

121-
connect(m_perfRecordProcess.data(), &QProcess::readyRead, this, [this]() {
119+
connect(m_perfRecordProcess.get(), &QProcess::readyRead, this, [this]() {
122120
const auto output = QString::fromUtf8(m_perfRecordProcess->readAll());
123121
emit recordingOutput(output);
124122
});

src/perfrecord.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
#include "perfcontrolfifowrapper.h"
1313

1414
#include <QObject>
15-
#include <QPointer>
15+
16+
#include <memory>
1617

1718
class QProcess;
1819
class RecordHost;
@@ -45,7 +46,7 @@ class PerfRecord : public QObject
4546

4647
private:
4748
const RecordHost* m_host = nullptr;
48-
QPointer<QProcess> m_perfRecordProcess;
49+
std::unique_ptr<QProcess> m_perfRecordProcess;
4950
InitiallyStoppedProcess m_targetProcessForPrivilegedPerf;
5051
PerfControlFifoWrapper m_perfControlFifo;
5152
QString m_outputPath;

0 commit comments

Comments
 (0)