diff options
-rw-r--r-- | .github/workflows/build.yml | 13 | ||||
-rw-r--r-- | launcher/JavaCommon.cpp | 2 | ||||
-rw-r--r-- | launcher/java/JavaUtils.cpp | 19 |
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); } |