From d5094a8d006bafe82d416ac8a371d0617aaf16ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Sun, 11 Oct 2026 15:25:36 +0200 Subject: [PATCH] [Oracle] Fix Qt6 build and treat unknown memory as sufficient Use QRegularExpression behind the same Qt version guard as totalMemoryBytes() in availableMemoryBytes(), where a bare QRegExp broke every Qt6 Linux build. hasAtLeastGiB() now treats a 0 reading (unsupported platform or failed query) as unknown and skips the low-memory prompt instead of misreading it as low memory. --- .../libcockatrice/utility/system_memory_querier.cpp | 6 +++++- .../libcockatrice/utility/system_memory_querier.h | 8 +++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libcockatrice_utility/libcockatrice/utility/system_memory_querier.cpp b/libcockatrice_utility/libcockatrice/utility/system_memory_querier.cpp index 46c24f69c..b4553f8d2 100644 --- a/libcockatrice_utility/libcockatrice/utility/system_memory_querier.cpp +++ b/libcockatrice_utility/libcockatrice/utility/system_memory_querier.cpp @@ -84,7 +84,11 @@ qulonglong SystemMemoryQuerier::availableMemoryBytes() while (!in.atEnd()) { QString line = in.readLine(); if (line.startsWith("MemAvailable:")) { - QStringList parts = line.split(QRegExp("\\s+"), Qt::SkipEmptyParts); +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + QStringList parts = line.split(QRegExp("\\s+"), QString::SkipEmptyParts); +#else + QStringList parts = line.split(QRegularExpression("\\s+"), Qt::SkipEmptyParts); +#endif if (parts.size() >= 2) return parts[1].toULongLong() * 1024; } diff --git a/libcockatrice_utility/libcockatrice/utility/system_memory_querier.h b/libcockatrice_utility/libcockatrice/utility/system_memory_querier.h index 44fd9f6f9..8a15fecdd 100644 --- a/libcockatrice_utility/libcockatrice/utility/system_memory_querier.h +++ b/libcockatrice_utility/libcockatrice/utility/system_memory_querier.h @@ -11,8 +11,14 @@ public: static bool hasAtLeastGiB(int gib) { + const qulonglong total = totalMemoryBytes(); + // 0 means the amount could not be determined (unsupported platform or failed query). + // Treat it as unknown and skip the check instead of misreading it as low memory. + if (total == 0) { + return true; + } const qulonglong GiB = 1024ull * 1024ull * 1024ull; - return totalMemoryBytes() >= (qulonglong)gib * GiB; + return total >= (qulonglong)gib * GiB; } };