aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yml13
-rw-r--r--launcher/JavaCommon.cpp2
-rw-r--r--launcher/java/JavaUtils.cpp19
3 files changed, 20 insertions, 14 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index bc92f37f..1108fed6 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -28,6 +28,7 @@ jobs:
qt_host: linux
qt_version: '6.3.1'
qt_modules: 'qt5compat qtimageformats'
+ qt_path: /home/runner/work/PolyMC/Qt
- os: windows-2022
name: "Windows-Legacy"
@@ -45,6 +46,7 @@ jobs:
qt_host: mac
qt_version: '6.3.1'
qt_modules: 'qt5compat qtimageformats'
+ qt_path: /Users/runner/work/PolyMC/Qt
runs-on: ${{ matrix.os }}
@@ -138,7 +140,15 @@ jobs:
- name: Install Qt (Linux)
if: runner.os == 'Linux' && matrix.appimage != true
run: |
- sudo apt-get -y install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5
+ sudo apt-get -y install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5
+
+ - name: Cache Qt (macOS and AppImage)
+ id: cache-qt
+ if: matrix.qt_ver == 6 && runner.os != 'Windows'
+ uses: actions/cache@v3
+ with:
+ path: '${{ matrix.qt_path }}/${{ matrix.qt_version }}'
+ key: ${{ matrix.qt_host }}-${{ matrix.qt_version }}-"${{ matrix.qt_modules }}"-qt_cache
- name: Install Qt (macOS and AppImage)
if: matrix.qt_ver == 6 && runner.os != 'Windows'
@@ -148,6 +158,7 @@ jobs:
host: ${{ matrix.qt_host }}
target: 'desktop'
modules: ${{ matrix.qt_modules }}
+ cached: ${{ steps.cache-qt.outputs.cache-hit }}
aqtversion: ==2.1.*
- name: Prepare AppImage (Linux)
diff --git a/launcher/JavaCommon.cpp b/launcher/JavaCommon.cpp
index 4ba319b8..aa4d1123 100644
--- a/launcher/JavaCommon.cpp
+++ b/launcher/JavaCommon.cpp
@@ -105,7 +105,7 @@ void JavaCommon::javaBinaryWasBad(QWidget *parent, JavaCheckResult result)
void JavaCommon::javaCheckNotFound(QWidget *parent)
{
QString text;
- text += QObject::tr("Java checker library could not be found. Please check your installation");
+ text += QObject::tr("Java checker library could not be found. Please check your installation.");
CustomMessageBox::selectable(parent, QObject::tr("Java test failure"), text, QMessageBox::Warning)->show();
}
diff --git a/launcher/java/JavaUtils.cpp b/launcher/java/JavaUtils.cpp
index c2b776ae..749c9c88 100644
--- a/launcher/java/JavaUtils.cpp
+++ b/launcher/java/JavaUtils.cpp
@@ -202,14 +202,6 @@ QList<JavaInstallPtr> JavaUtils::FindJavaFromRegistryKey(DWORD keyType, QString
{
// Read the current type version from the registry.
// This will be used to find any key that contains the JavaHome value.
- char *value = new char[0];
- DWORD valueSz = 0;
- if (RegQueryValueExW(jreKey, L"CurrentVersion", NULL, NULL, (BYTE *)value, &valueSz) ==
- ERROR_MORE_DATA)
- {
- value = new char[valueSz];
- RegQueryValueExW(jreKey, L"CurrentVersion", NULL, NULL, (BYTE *)value, &valueSz);
- }
TCHAR subKeyName[255];
DWORD subKeyNameSize, numSubKeys, retCode;
@@ -237,22 +229,25 @@ QList<JavaInstallPtr> JavaUtils::FindJavaFromRegistryKey(DWORD keyType, QString
KEY_READ | KEY_WOW64_64KEY, &newKey) == ERROR_SUCCESS)
{
// Read the JavaHome value to find where Java is installed.
- value = new char[0];
- valueSz = 0;
+ TCHAR *value = NULL;
+ DWORD valueSz = 0;
if (RegQueryValueExW(newKey, keyJavaDir.toStdWString().c_str(), NULL, NULL, (BYTE *)value,
&valueSz) == ERROR_MORE_DATA)
{
- value = new char[valueSz];
+ value = new TCHAR[valueSz];
RegQueryValueExW(newKey, keyJavaDir.toStdWString().c_str(), NULL, NULL, (BYTE *)value,
&valueSz);
+ QString newValue = QString::fromWCharArray(value);
+ delete [] value;
+
// Now, we construct the version object and add it to the list.
JavaInstallPtr javaVersion(new JavaInstall());
javaVersion->id = newSubkeyName;
javaVersion->arch = archType;
javaVersion->path =
- QDir(FS::PathCombine(value, "bin")).absoluteFilePath("javaw.exe");
+ QDir(FS::PathCombine(newValue, "bin")).absoluteFilePath("javaw.exe");
javas.append(javaVersion);
}