From 844f7b3d591986c2c246893720b3081c2040665b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Mon, 9 Apr 2018 03:14:30 +0100 Subject: [PATCH] LvmDevice: switch away from manual pointers. --- src/core/lvmdevice.cpp | 21 +++++++-------------- src/core/lvmdevice.h | 5 ++--- src/core/volumemanagerdevice.h | 2 +- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/core/lvmdevice.cpp b/src/core/lvmdevice.cpp index 118cd4f..b9746e3 100644 --- a/src/core/lvmdevice.cpp +++ b/src/core/lvmdevice.cpp @@ -46,9 +46,9 @@ public: qint64 m_freePE; QString m_UUID; - mutable QStringList* m_LVPathList; + mutable QStringList m_LVPathList; QVector m_PVs; - mutable QHash* m_LVSizeMap; + mutable std::unique_ptr> 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(); + d_ptr->m_LVPathList = getLVs(vgName); + d_ptr->m_LVSizeMap = std::make_unique>(); initPartitions(); } @@ -84,8 +84,6 @@ QVector 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 & LvmDevice::physicalVolumes() { return d_ptr->m_PVs; @@ -551,7 +544,7 @@ const QVector & LvmDevice::physicalVolumes() const return d_ptr->m_PVs; } -QHash* LvmDevice::LVSizeMap() const +std::unique_ptr>& LvmDevice::LVSizeMap() const { return d_ptr->m_LVSizeMap; } diff --git a/src/core/lvmdevice.h b/src/core/lvmdevice.h index 08b768e..f4413d8 100644 --- a/src/core/lvmdevice.h +++ b/src/core/lvmdevice.h @@ -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 s_DirtyPVs; @@ -98,12 +98,11 @@ public: qint64 allocatedPE() const; qint64 freePE() const; QString UUID() const; - QStringList* LVPathList() const; QVector & physicalVolumes(); const QVector & physicalVolumes() const; protected: - QHash* LVSizeMap() const; + std::unique_ptr>& LVSizeMap() const; }; #endif diff --git a/src/core/volumemanagerdevice.h b/src/core/volumemanagerdevice.h index 891aa68..f1750dd 100644 --- a/src/core/volumemanagerdevice.h +++ b/src/core/volumemanagerdevice.h @@ -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.