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; qint64 m_freePE;
QString m_UUID; QString m_UUID;
mutable QStringList* m_LVPathList; mutable QStringList m_LVPathList;
QVector <const Partition*> m_PVs; 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 /** 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_freePE = getFreePE(vgName);
d_ptr->m_allocPE = d_ptr->m_totalPE - d_ptr->m_freePE; d_ptr->m_allocPE = d_ptr->m_totalPE - d_ptr->m_freePE;
d_ptr->m_UUID = getUUID(vgName); d_ptr->m_UUID = getUUID(vgName);
d_ptr->m_LVPathList = new QStringList(getLVs(vgName)); d_ptr->m_LVPathList = getLVs(vgName);
d_ptr->m_LVSizeMap = new QHash<QString, qint64>(); d_ptr->m_LVSizeMap = std::make_unique<QHash<QString, qint64>>();
initPartitions(); initPartitions();
} }
@ -84,8 +84,6 @@ QVector<const Partition*> LvmDevice::s_DirtyPVs;
LvmDevice::~LvmDevice() LvmDevice::~LvmDevice()
{ {
delete d_ptr->m_LVPathList;
delete d_ptr->m_LVSizeMap;
} }
void LvmDevice::initPartitions() void LvmDevice::initPartitions()
@ -243,9 +241,9 @@ const QStringList LvmDevice::deviceNodes() const
return pvList; 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 qint64 LvmDevice::partitionSize(QString& partitionPath) const
@ -536,11 +534,6 @@ QString LvmDevice::UUID() const
return d_ptr->m_UUID; return d_ptr->m_UUID;
} }
QStringList* LvmDevice::LVPathList() const
{
return d_ptr->m_LVPathList;
}
QVector <const Partition*>& LvmDevice::physicalVolumes() QVector <const Partition*>& LvmDevice::physicalVolumes()
{ {
return d_ptr->m_PVs; return d_ptr->m_PVs;
@ -551,7 +544,7 @@ const QVector <const Partition*>& LvmDevice::physicalVolumes() const
return d_ptr->m_PVs; 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; return d_ptr->m_LVSizeMap;
} }

View File

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

View File

@ -52,7 +52,7 @@ public:
/** /**
* @return list of logical partition's path. * @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. * @return size of logical partition at the given path in bytes.