LvmDevice: switch away from manual pointers.

This commit is contained in:
Andrius Štikonas 2018-04-09 03:14:30 +01:00
parent 3ccd04e675
commit 844f7b3d59
3 changed files with 10 additions and 18 deletions

View File

@ -46,9 +46,9 @@ public:
qint64 m_freePE;
QString m_UUID;
mutable QStringList* m_LVPathList;
mutable QStringList m_LVPathList;
QVector <const Partition*> m_PVs;
mutable QHash<QString, qint64>* m_LVSizeMap;
mutable std::unique_ptr<QHash<QString, qint64>> m_LVSizeMap;
};
/** Constructs a representation of LVM device with initialized LV as Partitions
@ -70,8 +70,8 @@ LvmDevice::LvmDevice(const QString& vgName, const QString& iconName)
d_ptr->m_freePE = getFreePE(vgName);
d_ptr->m_allocPE = d_ptr->m_totalPE - d_ptr->m_freePE;
d_ptr->m_UUID = getUUID(vgName);
d_ptr->m_LVPathList = new QStringList(getLVs(vgName));
d_ptr->m_LVSizeMap = new QHash<QString, qint64>();
d_ptr->m_LVPathList = getLVs(vgName);
d_ptr->m_LVSizeMap = std::make_unique<QHash<QString, qint64>>();
initPartitions();
}
@ -84,8 +84,6 @@ QVector<const Partition*> LvmDevice::s_DirtyPVs;
LvmDevice::~LvmDevice()
{
delete d_ptr->m_LVPathList;
delete d_ptr->m_LVSizeMap;
}
void LvmDevice::initPartitions()
@ -243,9 +241,9 @@ const QStringList LvmDevice::deviceNodes() const
return pvList;
}
const QStringList LvmDevice::partitionNodes() const
const QStringList& LvmDevice::partitionNodes() const
{
return *LVPathList();
return d_ptr->m_LVPathList;
}
qint64 LvmDevice::partitionSize(QString& partitionPath) const
@ -536,11 +534,6 @@ QString LvmDevice::UUID() const
return d_ptr->m_UUID;
}
QStringList* LvmDevice::LVPathList() const
{
return d_ptr->m_LVPathList;
}
QVector <const Partition*>& LvmDevice::physicalVolumes()
{
return d_ptr->m_PVs;
@ -551,7 +544,7 @@ const QVector <const Partition*>& LvmDevice::physicalVolumes() const
return d_ptr->m_PVs;
}
QHash<QString, qint64>* LvmDevice::LVSizeMap() const
std::unique_ptr<QHash<QString, qint64>>& LvmDevice::LVSizeMap() const
{
return d_ptr->m_LVSizeMap;
}

View File

@ -51,7 +51,7 @@ public:
public:
const QStringList deviceNodes() const override;
const QStringList partitionNodes() const override;
const QStringList& partitionNodes() const override;
qint64 partitionSize(QString& partitionPath) const override;
static QVector<const Partition*> s_DirtyPVs;
@ -98,12 +98,11 @@ public:
qint64 allocatedPE() const;
qint64 freePE() const;
QString UUID() const;
QStringList* LVPathList() const;
QVector <const Partition*>& physicalVolumes();
const QVector <const Partition*>& physicalVolumes() const;
protected:
QHash<QString, qint64>* LVSizeMap() const;
std::unique_ptr<QHash<QString, qint64>>& LVSizeMap() const;
};
#endif

View File

@ -52,7 +52,7 @@ public:
/**
* @return list of logical partition's path.
*/
virtual const QStringList partitionNodes() const = 0;
virtual const QStringList& partitionNodes() const = 0;
/**
* @return size of logical partition at the given path in bytes.