From 9fef9c7bd85ad9285402058ec7ff934767b270f6 Mon Sep 17 00:00:00 2001 From: Dylan Schooner Date: Thu, 18 Dec 2025 14:14:29 -0500 Subject: [PATCH] Use Json::parseUntilMalformed in McClient::parseResponse Signed-off-by: Dylan Schooner (cherry picked from commit 9c7fe72f9cf282836915886827961537b8af4689) --- .../minecraft/mod/tasks/LocalDataPackParseTask.cpp | 1 + launcher/ui/pages/instance/McClient.cpp | 13 ++++--------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/launcher/minecraft/mod/tasks/LocalDataPackParseTask.cpp b/launcher/minecraft/mod/tasks/LocalDataPackParseTask.cpp index 81c561f27..345db807b 100644 --- a/launcher/minecraft/mod/tasks/LocalDataPackParseTask.cpp +++ b/launcher/minecraft/mod/tasks/LocalDataPackParseTask.cpp @@ -172,6 +172,7 @@ bool processMCMeta(DataPack* pack, QByteArray&& raw_data) auto json_doc = Json::parseUntilMalformed(raw_data, &parse_error); if (parse_error.error != QJsonParseError::NoError) { qWarning() << "Failed to parse JSON:" << parse_error.errorString(); + return false; } try { diff --git a/launcher/ui/pages/instance/McClient.cpp b/launcher/ui/pages/instance/McClient.cpp index e42342a11..f91194dfe 100644 --- a/launcher/ui/pages/instance/McClient.cpp +++ b/launcher/ui/pages/instance/McClient.cpp @@ -81,16 +81,11 @@ void McClient::parseResponse() // 'resp' should now be the JSON string QJsonParseError parseError; - QJsonDocument doc = QJsonDocument::fromJson(m_resp, &parseError); + QJsonDocument doc = Json::parseUntilMalformed(m_resp, &parseError); if (parseError.error != QJsonParseError::NoError) { - QByteArray validJson = m_resp.left(parseError.offset); - doc = QJsonDocument::fromJson(validJson, &parseError); - - if (parseError.error != QJsonParseError::NoError) { - qDebug() << "Failed to parse JSON:" << parseError.errorString(); - emitFail(parseError.errorString()); - return; - } + qDebug() << "Failed to parse JSON:" << parseError.errorString(); + emitFail(parseError.errorString()); + return; } emitSucceed(doc.object()); }