forked from qt-creator/qt-creator
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:
@@ -75,8 +75,8 @@ public:
|
|||||||
void setManager(const PerfProfilerTraceManager *manager) { m_manager = manager; }
|
void setManager(const PerfProfilerTraceManager *manager) { m_manager = manager; }
|
||||||
const PerfProfilerTraceManager *manager() const { return m_manager; }
|
const PerfProfilerTraceManager *manager() const { return m_manager; }
|
||||||
|
|
||||||
PerfProfilerFlameGraphModel::Data *stackBottom() const { return m_stackBottom.data(); }
|
PerfProfilerFlameGraphModel::Data *stackBottom() const { return m_stackBottom.get(); }
|
||||||
void swapStackBottom(QScopedPointer<PerfProfilerFlameGraphModel::Data> &stackBottom)
|
void swapStackBottom(std::unique_ptr<PerfProfilerFlameGraphModel::Data> &stackBottom)
|
||||||
{
|
{
|
||||||
m_stackBottom.swap(stackBottom);
|
m_stackBottom.swap(stackBottom);
|
||||||
}
|
}
|
||||||
@@ -84,7 +84,7 @@ public:
|
|||||||
uint resourcePeakId() const { return m_resourcePeakId; }
|
uint resourcePeakId() const { return m_resourcePeakId; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QScopedPointer<PerfProfilerFlameGraphModel::Data> m_stackBottom;
|
std::unique_ptr<PerfProfilerFlameGraphModel::Data> m_stackBottom;
|
||||||
std::unordered_map<quint32, ProcessResourceCounter> m_resourceBlocks;
|
std::unordered_map<quint32, ProcessResourceCounter> m_resourceBlocks;
|
||||||
QPointer<const PerfProfilerTraceManager> m_manager;
|
QPointer<const PerfProfilerTraceManager> m_manager;
|
||||||
uint m_resourcePeakId = 0;
|
uint m_resourcePeakId = 0;
|
||||||
@@ -106,7 +106,7 @@ PerfProfilerFlameGraphModel::PerfProfilerFlameGraphModel(PerfProfilerTraceManage
|
|||||||
PerfProfilerFlameGraphModel::~PerfProfilerFlameGraphModel()
|
PerfProfilerFlameGraphModel::~PerfProfilerFlameGraphModel()
|
||||||
{
|
{
|
||||||
// If the offline data isn't here, we're being deleted while loading something. That's unnice.
|
// 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
|
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()) {
|
if (child.isValid()) {
|
||||||
Data *childData = static_cast<Data *>(child.internalPointer());
|
Data *childData = static_cast<Data *>(child.internalPointer());
|
||||||
return childData->parent == m_stackBottom.data() ? QModelIndex()
|
return childData->parent == m_stackBottom.get() ? QModelIndex()
|
||||||
: createIndex(0, 0, childData->parent);
|
: createIndex(0, 0, childData->parent);
|
||||||
}
|
}
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
@@ -153,7 +153,7 @@ QVariant PerfProfilerFlameGraphModel::data(const QModelIndex &index, int role) c
|
|||||||
{
|
{
|
||||||
const Data *data = static_cast<Data *>(index.internalPointer());
|
const Data *data = static_cast<Data *>(index.internalPointer());
|
||||||
if (!data)
|
if (!data)
|
||||||
data = m_stackBottom.data();
|
data = m_stackBottom.get();
|
||||||
|
|
||||||
switch (role) {
|
switch (role) {
|
||||||
case TypeIdRole:
|
case TypeIdRole:
|
||||||
@@ -210,7 +210,7 @@ QVariant PerfProfilerFlameGraphModel::data(const QModelIndex &index, int role) c
|
|||||||
|
|
||||||
void PerfProfilerFlameGraphModel::initialize()
|
void PerfProfilerFlameGraphModel::initialize()
|
||||||
{
|
{
|
||||||
PerfProfilerFlameGraphData *offline = m_offlineData.take();
|
PerfProfilerFlameGraphData *offline = m_offlineData.release();
|
||||||
QTC_ASSERT(offline, return);
|
QTC_ASSERT(offline, return);
|
||||||
QTC_ASSERT(offline->isEmpty(), offline->clear());
|
QTC_ASSERT(offline->isEmpty(), offline->clear());
|
||||||
offline->setManager(qobject_cast<PerfProfilerTraceManager *>(QObject::parent()));
|
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;
|
const uint numSamples = (event.timestamp() < 0) ? 0 : 1;
|
||||||
m_stackBottom->samples += numSamples;
|
m_stackBottom->samples += numSamples;
|
||||||
auto data = m_stackBottom.data();
|
auto data = m_stackBottom.get();
|
||||||
const QVector<int> &stack = event.frames();
|
const QVector<int> &stack = event.frames();
|
||||||
for (auto it = stack.rbegin(), end = stack.rend(); it != end; ++it)
|
for (auto it = stack.rbegin(), end = stack.rend(); it != end; ++it)
|
||||||
data = pushChild(data, *it, numSamples);
|
data = pushChild(data, *it, numSamples);
|
||||||
@@ -304,7 +304,7 @@ void PerfProfilerFlameGraphModel::finalize(PerfProfilerFlameGraphData *data)
|
|||||||
data->swapStackBottom(m_stackBottom);
|
data->swapStackBottom(m_stackBottom);
|
||||||
|
|
||||||
QQueue<Data *> nodes;
|
QQueue<Data *> nodes;
|
||||||
nodes.enqueue(m_stackBottom.data());
|
nodes.enqueue(m_stackBottom.get());
|
||||||
while (!nodes.isEmpty()) {
|
while (!nodes.isEmpty()) {
|
||||||
Data *node = nodes.dequeue();
|
Data *node = nodes.dequeue();
|
||||||
if (node->lastResourceChangeId < data->resourcePeakId()) {
|
if (node->lastResourceChangeId < data->resourcePeakId()) {
|
||||||
@@ -325,12 +325,12 @@ void PerfProfilerFlameGraphModel::finalize(PerfProfilerFlameGraphData *data)
|
|||||||
void PerfProfilerFlameGraphModel::clear(PerfProfilerFlameGraphData *data)
|
void PerfProfilerFlameGraphModel::clear(PerfProfilerFlameGraphData *data)
|
||||||
{
|
{
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
if (m_offlineData.isNull()) {
|
if (!m_offlineData) {
|
||||||
// We didn't finalize
|
// We didn't finalize
|
||||||
data->clear();
|
data->clear();
|
||||||
m_offlineData.reset(data);
|
m_offlineData.reset(data);
|
||||||
} else {
|
} else {
|
||||||
QTC_CHECK(data == m_offlineData.data());
|
QTC_CHECK(data == m_offlineData.get());
|
||||||
}
|
}
|
||||||
m_stackBottom.reset(new Data);
|
m_stackBottom.reset(new Data);
|
||||||
endResetModel();
|
endResetModel();
|
||||||
|
@@ -77,8 +77,8 @@ signals:
|
|||||||
void gotoSourceLocation(QString file, int line, int column);
|
void gotoSourceLocation(QString file, int line, int column);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QScopedPointer<Data> m_stackBottom;
|
std::unique_ptr<Data> m_stackBottom;
|
||||||
QScopedPointer<PerfProfilerFlameGraphData> m_offlineData;
|
std::unique_ptr<PerfProfilerFlameGraphData> m_offlineData;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
@@ -136,7 +136,7 @@ void PerfProfilerStatisticsMainModel::finalize(PerfProfilerStatisticsData *data)
|
|||||||
resort();
|
resort();
|
||||||
|
|
||||||
QTC_ASSERT(data->isEmpty(), data->clear());
|
QTC_ASSERT(data->isEmpty(), data->clear());
|
||||||
QTC_CHECK(m_offlineData.isNull());
|
QTC_CHECK(!m_offlineData);
|
||||||
m_offlineData.reset(data);
|
m_offlineData.reset(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,7 +180,7 @@ quint64 PerfProfilerStatisticsMainModel::address(int typeId) const
|
|||||||
void PerfProfilerStatisticsMainModel::initialize()
|
void PerfProfilerStatisticsMainModel::initialize()
|
||||||
{
|
{
|
||||||
// Make offline data unaccessible while we're loading events
|
// 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, return);
|
||||||
QTC_ASSERT(offline->isEmpty(), offline->clear());
|
QTC_ASSERT(offline->isEmpty(), offline->clear());
|
||||||
}
|
}
|
||||||
@@ -290,12 +290,12 @@ void PerfProfilerStatisticsMainModel::sort(int column, Qt::SortOrder order)
|
|||||||
void PerfProfilerStatisticsMainModel::clear(PerfProfilerStatisticsData *data)
|
void PerfProfilerStatisticsMainModel::clear(PerfProfilerStatisticsData *data)
|
||||||
{
|
{
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
if (m_offlineData.isNull()) {
|
if (!m_offlineData) {
|
||||||
// We didn't finalize
|
// We didn't finalize
|
||||||
data->clear();
|
data->clear();
|
||||||
m_offlineData.reset(data);
|
m_offlineData.reset(data);
|
||||||
} else {
|
} else {
|
||||||
QTC_CHECK(data == m_offlineData.data());
|
QTC_CHECK(data == m_offlineData.get());
|
||||||
}
|
}
|
||||||
m_totalSamples = 0;
|
m_totalSamples = 0;
|
||||||
m_data.clear();
|
m_data.clear();
|
||||||
@@ -335,7 +335,7 @@ PerfProfilerStatisticsMainModel::PerfProfilerStatisticsMainModel(QObject *parent
|
|||||||
PerfProfilerStatisticsMainModel::~PerfProfilerStatisticsMainModel()
|
PerfProfilerStatisticsMainModel::~PerfProfilerStatisticsMainModel()
|
||||||
{
|
{
|
||||||
// If the offline data isn't here, we're being deleted while loading something. That's unnice.
|
// 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(
|
PerfProfilerStatisticsRelativesModel::PerfProfilerStatisticsRelativesModel(
|
||||||
|
@@ -102,7 +102,7 @@ private:
|
|||||||
qint64 m_endTime;
|
qint64 m_endTime;
|
||||||
uint m_totalSamples;
|
uint m_totalSamples;
|
||||||
|
|
||||||
QScopedPointer<PerfProfilerStatisticsData> m_offlineData;
|
std::unique_ptr<PerfProfilerStatisticsData> m_offlineData;
|
||||||
};
|
};
|
||||||
|
|
||||||
class PerfProfilerStatisticsRelativesModel : public PerfProfilerStatisticsModel {
|
class PerfProfilerStatisticsRelativesModel : public PerfProfilerStatisticsModel {
|
||||||
|
Reference in New Issue
Block a user