aboutsummaryrefslogtreecommitdiff
path: root/launcher/java/JavaChecker.cpp
diff options
context:
space:
mode:
authorAlexandru Ionut Tripon <alexandru.tripon97@gmail.com>2023-08-12 12:42:30 +0300
committerGitHub <noreply@github.com>2023-08-12 12:42:30 +0300
commitb3b2e9df35222209b4920202d86091eeeb87f03f (patch)
treece44c3877ee36c21279d142b2af1c393e7b87780 /launcher/java/JavaChecker.cpp
parentca061080c13042642fb3bd49a29a863756f45866 (diff)
parent3aba7f8fec45c7c87be486d8f6b5c96f69facf93 (diff)
downloadPrismLauncher-b3b2e9df35222209b4920202d86091eeeb87f03f.tar.gz
PrismLauncher-b3b2e9df35222209b4920202d86091eeeb87f03f.tar.bz2
PrismLauncher-b3b2e9df35222209b4920202d86091eeeb87f03f.zip
Merge branch 'develop' into feat/acknowledge_release_type
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Diffstat (limited to 'launcher/java/JavaChecker.cpp')
-rw-r--r--launcher/java/JavaChecker.cpp56
1 files changed, 20 insertions, 36 deletions
diff --git a/launcher/java/JavaChecker.cpp b/launcher/java/JavaChecker.cpp
index e4a686c2..20caba18 100644
--- a/launcher/java/JavaChecker.cpp
+++ b/launcher/java/JavaChecker.cpp
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
- * PolyMC - Minecraft Launcher
+ * Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@@ -35,26 +35,23 @@
#include "JavaChecker.h"
+#include <QDebug>
#include <QFile>
-#include <QProcess>
#include <QMap>
-#include <QDebug>
+#include <QProcess>
-#include "JavaUtils.h"
-#include "FileSystem.h"
-#include "Commandline.h"
#include "Application.h"
+#include "Commandline.h"
+#include "FileSystem.h"
+#include "JavaUtils.h"
-JavaChecker::JavaChecker(QObject *parent) : QObject(parent)
-{
-}
+JavaChecker::JavaChecker(QObject* parent) : QObject(parent) {}
void JavaChecker::performCheck()
{
QString checkerJar = JavaUtils::getJavaCheckPath();
- if (checkerJar.isEmpty())
- {
+ if (checkerJar.isEmpty()) {
qDebug() << "Java checker library could not be found. Please check your installation.";
return;
}
@@ -62,25 +59,21 @@ void JavaChecker::performCheck()
QStringList args;
process.reset(new QProcess());
- if(m_args.size())
- {
+ if (m_args.size()) {
auto extraArgs = Commandline::splitArgs(m_args);
args.append(extraArgs);
}
- if(m_minMem != 0)
- {
+ if (m_minMem != 0) {
args << QString("-Xms%1m").arg(m_minMem);
}
- if(m_maxMem != 0)
- {
+ if (m_maxMem != 0) {
args << QString("-Xmx%1m").arg(m_maxMem);
}
- if(m_permGen != 64)
- {
+ if (m_permGen != 64) {
args << QString("-XX:PermSize=%1m").arg(m_permGen);
}
- args.append({"-jar", checkerJar});
+ args.append({ "-jar", checkerJar });
process->setArguments(args);
process->setProgram(m_path);
process->setProcessChannelMode(QProcess::SeparateChannels);
@@ -130,8 +123,7 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
qWarning() << "STDERR" << m_stderr;
qDebug() << "Java checker finished with status" << status << "exit code" << exitcode;
- if (status == QProcess::CrashExit || exitcode == 1)
- {
+ if (status == QProcess::CrashExit || exitcode == 1) {
result.validity = JavaCheckResult::Validity::Errored;
emit checkFinished(result);
return;
@@ -146,8 +138,7 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
#else
QStringList lines = m_stdout.split("\n", QString::SkipEmptyParts);
#endif
- for(QString line : lines)
- {
+ for (QString line : lines) {
line = line.trimmed();
// NOTE: workaround for GH-4125, where garbage is getting printed into stdout on bedrock linux
if (line.contains("/bedrock/strata")) {
@@ -159,18 +150,14 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
#else
auto parts = line.split('=', QString::SkipEmptyParts);
#endif
- if(parts.size() != 2 || parts[0].isEmpty() || parts[1].isEmpty())
- {
+ if (parts.size() != 2 || parts[0].isEmpty() || parts[1].isEmpty()) {
continue;
- }
- else
- {
+ } else {
results.insert(parts[0], parts[1]);
}
}
- if(!results.contains("os.arch") || !results.contains("java.version") || !results.contains("java.vendor") || !success)
- {
+ if (!results.contains("os.arch") || !results.contains("java.version") || !results.contains("java.vendor") || !success) {
result.validity = JavaCheckResult::Validity::ReturnedInvalidData;
emit checkFinished(result);
return;
@@ -181,7 +168,6 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
auto java_vendor = results["java.vendor"];
bool is_64 = os_arch == "x86_64" || os_arch == "amd64" || os_arch == "aarch64" || os_arch == "arm64";
-
result.validity = JavaCheckResult::Validity::Valid;
result.is_64bit = is_64;
result.mojangPlatform = is_64 ? "64" : "32";
@@ -194,8 +180,7 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
void JavaChecker::error(QProcess::ProcessError err)
{
- if(err == QProcess::FailedToStart)
- {
+ if (err == QProcess::FailedToStart) {
qDebug() << "Java checker has failed to start.";
qDebug() << "Process environment:";
qDebug() << process->environment();
@@ -216,8 +201,7 @@ void JavaChecker::error(QProcess::ProcessError err)
void JavaChecker::timeout()
{
// NO MERCY. NO ABUSE.
- if(process)
- {
+ if (process) {
qDebug() << "Java checker has been killed by timeout.";
process->kill();
}