PerfProfiler: Avoid some warnings

Use std::unique_ptr instead of QScopedPointer for pointers we want to
release().

Change-Id: I80732bb7bd81d8c0a5a1a647d22282c32e918fe2
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Ulf Hermann
2024-09-26 15:39:15 +02:00
parent 07061becdd
commit d9f0eb37ac
4 changed files with 20 additions and 20 deletions

View File

@@ -75,8 +75,8 @@ public:
void setManager(const PerfProfilerTraceManager *manager) { m_manager = manager; }
const PerfProfilerTraceManager *manager() const { return m_manager; }
PerfProfilerFlameGraphModel::Data *stackBottom() const { return m_stackBottom.data(); }
void swapStackBottom(QScopedPointer<PerfProfilerFlameGraphModel::Data> &stackBottom)
PerfProfilerFlameGraphModel::Data *stackBottom() const { return m_stackBottom.get(); }
void swapStackBottom(std::unique_ptr<PerfProfilerFlameGraphModel::Data> &stackBottom)
{
m_stackBottom.swap(stackBottom);
}
@@ -84,7 +84,7 @@ public:
uint resourcePeakId() const { return m_resourcePeakId; }
private:
QScopedPointer<PerfProfilerFlameGraphModel::Data> m_stackBottom;
std::unique_ptr<PerfProfilerFlameGraphModel::Data> m_stackBottom;
std::unordered_map<quint32, ProcessResourceCounter> m_resourceBlocks;
QPointer<const PerfProfilerTraceManager> m_manager;
uint m_resourcePeakId = 0;
@@ -106,7 +106,7 @@ PerfProfilerFlameGraphModel::PerfProfilerFlameGraphModel(PerfProfilerTraceManage
PerfProfilerFlameGraphModel::~PerfProfilerFlameGraphModel()
{
// If the offline data isn't here, we're being deleted while loading something. That's unnice.
QTC_CHECK(!m_offlineData.isNull());
QTC_CHECK(m_offlineData);
}
QModelIndex PerfProfilerFlameGraphModel::index(int row, int column, const QModelIndex &parent) const
@@ -122,8 +122,8 @@ QModelIndex PerfProfilerFlameGraphModel::parent(const QModelIndex &child) const
{
if (child.isValid()) {
Data *childData = static_cast<Data *>(child.internalPointer());
return childData->parent == m_stackBottom.data() ? QModelIndex()
: createIndex(0, 0, childData->parent);
return childData->parent == m_stackBottom.get() ? QModelIndex()
: createIndex(0, 0, childData->parent);
}
return {};
}
@@ -153,7 +153,7 @@ QVariant PerfProfilerFlameGraphModel::data(const QModelIndex &index, int role) c
{
const Data *data = static_cast<Data *>(index.internalPointer());
if (!data)
data = m_stackBottom.data();
data = m_stackBottom.get();
switch (role) {
case TypeIdRole:
@@ -210,7 +210,7 @@ QVariant PerfProfilerFlameGraphModel::data(const QModelIndex &index, int role) c
void PerfProfilerFlameGraphModel::initialize()
{
PerfProfilerFlameGraphData *offline = m_offlineData.take();
PerfProfilerFlameGraphData *offline = m_offlineData.release();
QTC_ASSERT(offline, return);
QTC_ASSERT(offline->isEmpty(), offline->clear());
offline->setManager(qobject_cast<PerfProfilerTraceManager *>(QObject::parent()));
@@ -289,7 +289,7 @@ void PerfProfilerFlameGraphData::loadEvent(const PerfEvent &event, const PerfEve
{
const uint numSamples = (event.timestamp() < 0) ? 0 : 1;
m_stackBottom->samples += numSamples;
auto data = m_stackBottom.data();
auto data = m_stackBottom.get();
const QVector<int> &stack = event.frames();
for (auto it = stack.rbegin(), end = stack.rend(); it != end; ++it)
data = pushChild(data, *it, numSamples);
@@ -304,7 +304,7 @@ void PerfProfilerFlameGraphModel::finalize(PerfProfilerFlameGraphData *data)
data->swapStackBottom(m_stackBottom);
QQueue<Data *> nodes;
nodes.enqueue(m_stackBottom.data());
nodes.enqueue(m_stackBottom.get());
while (!nodes.isEmpty()) {
Data *node = nodes.dequeue();
if (node->lastResourceChangeId < data->resourcePeakId()) {
@@ -325,12 +325,12 @@ void PerfProfilerFlameGraphModel::finalize(PerfProfilerFlameGraphData *data)
void PerfProfilerFlameGraphModel::clear(PerfProfilerFlameGraphData *data)
{
beginResetModel();
if (m_offlineData.isNull()) {
if (!m_offlineData) {
// We didn't finalize
data->clear();
m_offlineData.reset(data);
} else {
QTC_CHECK(data == m_offlineData.data());
QTC_CHECK(data == m_offlineData.get());
}
m_stackBottom.reset(new Data);
endResetModel();

View File

@@ -77,8 +77,8 @@ signals:
void gotoSourceLocation(QString file, int line, int column);
private:
QScopedPointer<Data> m_stackBottom;
QScopedPointer<PerfProfilerFlameGraphData> m_offlineData;
std::unique_ptr<Data> m_stackBottom;
std::unique_ptr<PerfProfilerFlameGraphData> m_offlineData;
};
} // namespace Internal

View File

@@ -136,7 +136,7 @@ void PerfProfilerStatisticsMainModel::finalize(PerfProfilerStatisticsData *data)
resort();
QTC_ASSERT(data->isEmpty(), data->clear());
QTC_CHECK(m_offlineData.isNull());
QTC_CHECK(!m_offlineData);
m_offlineData.reset(data);
}
@@ -180,7 +180,7 @@ quint64 PerfProfilerStatisticsMainModel::address(int typeId) const
void PerfProfilerStatisticsMainModel::initialize()
{
// Make offline data unaccessible while we're loading events
PerfProfilerStatisticsData *offline = m_offlineData.take();
PerfProfilerStatisticsData *offline = m_offlineData.release();
QTC_ASSERT(offline, return);
QTC_ASSERT(offline->isEmpty(), offline->clear());
}
@@ -290,12 +290,12 @@ void PerfProfilerStatisticsMainModel::sort(int column, Qt::SortOrder order)
void PerfProfilerStatisticsMainModel::clear(PerfProfilerStatisticsData *data)
{
beginResetModel();
if (m_offlineData.isNull()) {
if (!m_offlineData) {
// We didn't finalize
data->clear();
m_offlineData.reset(data);
} else {
QTC_CHECK(data == m_offlineData.data());
QTC_CHECK(data == m_offlineData.get());
}
m_totalSamples = 0;
m_data.clear();
@@ -335,7 +335,7 @@ PerfProfilerStatisticsMainModel::PerfProfilerStatisticsMainModel(QObject *parent
PerfProfilerStatisticsMainModel::~PerfProfilerStatisticsMainModel()
{
// If the offline data isn't here, we're being deleted while loading something. That's unnice.
QTC_CHECK(!m_offlineData.isNull());
QTC_CHECK(m_offlineData);
}
PerfProfilerStatisticsRelativesModel::PerfProfilerStatisticsRelativesModel(

View File

@@ -102,7 +102,7 @@ private:
qint64 m_endTime;
uint m_totalSamples;
QScopedPointer<PerfProfilerStatisticsData> m_offlineData;
std::unique_ptr<PerfProfilerStatisticsData> m_offlineData;
};
class PerfProfilerStatisticsRelativesModel : public PerfProfilerStatisticsModel {