Check return value of 'virtual bool QFile::open(QIODeviceBase::OpenMode)'

Signed-off-by: Dylan Schooner <dschooner05@gmail.com>
This commit is contained in:
Dylan Schooner
2025-10-30 03:15:14 -04:00
parent 2982e6e7c9
commit 8d42bdaf6b
9 changed files with 63 additions and 28 deletions

View File

@@ -153,25 +153,29 @@ void PackInstallTask::install()
QFile packJson(m_stagingPath + "/minecraft/pack.json");
QDir jarmodDir = QDir(m_stagingPath + "/unzip/instMods");
if (packJson.exists()) {
packJson.open(QIODevice::ReadOnly | QIODevice::Text);
QJsonDocument doc = QJsonDocument::fromJson(packJson.readAll());
packJson.close();
if (packJson.open(QIODevice::ReadOnly | QIODevice::Text)) {
QJsonDocument doc = QJsonDocument::fromJson(packJson.readAll());
packJson.close();
// we only care about the libs
QJsonArray libs = doc.object().value("libraries").toArray();
// we only care about the libs
QJsonArray libs = doc.object().value("libraries").toArray();
for (const auto& value : libs) {
QString nameValue = value.toObject().value("name").toString();
if (!nameValue.startsWith("net.minecraftforge")) {
continue;
for (const auto& value : libs) {
QString nameValue = value.toObject().value("name").toString();
if (!nameValue.startsWith("net.minecraftforge")) {
continue;
}
GradleSpecifier forgeVersion(nameValue);
components->setComponentVersion("net.minecraftforge",
forgeVersion.version().replace(m_pack.mcVersion, "").replace("-", ""));
packJson.remove();
fallback = false;
break;
}
GradleSpecifier forgeVersion(nameValue);
components->setComponentVersion("net.minecraftforge", forgeVersion.version().replace(m_pack.mcVersion, "").replace("-", ""));
packJson.remove();
fallback = false;
break;
} else {
qWarning() << "Failed to open file '" << packJson.fileName() << "' for reading!";
}
}