File 2001-smaps.patch of Package libksysguard6
diff --git a/formatter/Formatter.cpp b/formatter/Formatter.cpp
index 7a1d156a4bd13c70b4a394caab82303ec445e0fb..1946cfe99913c16f0dd803a6b5c66ba9bab13617 100644
--- a/formatter/Formatter.cpp
+++ b/formatter/Formatter.cpp
@@ -523,6 +523,10 @@ QString Formatter::formatValue(const QVariant &value, Unit unit, MetricPrefix ta
case UnitGigaByte:
case UnitTeraByte:
case UnitPetaByte:
+ if (value.toDouble() < 0) {
+ return i18nc("Not available", "N/A");
+ }
+ Q_FALLTHROUGH();
case UnitByteRate:
case UnitKiloByteRate:
case UnitMegaByteRate:
diff --git a/processcore/read_procsmaps_runnable.cpp b/processcore/read_procsmaps_runnable.cpp
index b2a3bfcb2f47be7e3f643a37a6ae99fa2483da2d..68500c9694708b0329d2902ca44763eb6e7c2e91 100644
--- a/processcore/read_procsmaps_runnable.cpp
+++ b/processcore/read_procsmaps_runnable.cpp
@@ -19,21 +19,19 @@ ReadProcSmapsRunnable::ReadProcSmapsRunnable(const QString &dir)
void ReadProcSmapsRunnable::run()
{
- QFile file{m_dir + QStringLiteral("smaps_rollup")};
- if (!file.open(QIODevice::ReadOnly)) {
- return;
- }
+ qlonglong pss = -1;
- qulonglong pss = 0LL;
- auto buffer = QByteArray{1024, '\0'};
- while (file.readLine(buffer.data(), buffer.size()) > 0) {
- if (buffer.startsWith("Pss:")) {
- pss += std::stoll(buffer.mid(sizeof("Pss:")).toStdString());
- break;
+ QFile file{m_dir + QStringLiteral("smaps_rollup")};
+ if (file.open(QIODevice::ReadOnly)) {
+ auto buffer = QByteArray{1024, '\0'};
+ while (file.readLine(buffer.data(), buffer.size()) > 0) {
+ if (buffer.startsWith("Pss:")) {
+ pss += std::stoll(buffer.mid(sizeof("Pss:")).toStdString());
+ break;
+ }
}
+ file.close();
}
- file.close();
-
Q_EMIT finished(pss);
}