aboutsummaryrefslogtreecommitdiff
path: root/launcher/java/JavaUtils.cpp
diff options
context:
space:
mode:
authorSefa Eyeoglu <contact@scrumplex.net>2022-07-11 18:51:32 +0200
committerSefa Eyeoglu <contact@scrumplex.net>2022-07-11 18:53:20 +0200
commitc0bf267baeb14f86e5391f712f578b81c9cad383 (patch)
tree6fff97ed5081d9b60b053a7726752a20dfbacac7 /launcher/java/JavaUtils.cpp
parent1a26a5365913787e051a7c6518f051bb71ba5cd5 (diff)
downloadPrismLauncher-c0bf267baeb14f86e5391f712f578b81c9cad383.tar.gz
PrismLauncher-c0bf267baeb14f86e5391f712f578b81c9cad383.tar.bz2
PrismLauncher-c0bf267baeb14f86e5391f712f578b81c9cad383.zip
fix: fix unicode issue with JavaChecker on Windows
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
Diffstat (limited to 'launcher/java/JavaUtils.cpp')
-rw-r--r--launcher/java/JavaUtils.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/launcher/java/JavaUtils.cpp b/launcher/java/JavaUtils.cpp
index c2b776ae..5223256c 100644
--- a/launcher/java/JavaUtils.cpp
+++ b/launcher/java/JavaUtils.cpp
@@ -202,12 +202,12 @@ 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];
+ TCHAR *value = new TCHAR[0];
DWORD valueSz = 0;
if (RegQueryValueExW(jreKey, L"CurrentVersion", NULL, NULL, (BYTE *)value, &valueSz) ==
ERROR_MORE_DATA)
{
- value = new char[valueSz];
+ value = new TCHAR[valueSz];
RegQueryValueExW(jreKey, L"CurrentVersion", NULL, NULL, (BYTE *)value, &valueSz);
}
@@ -237,22 +237,24 @@ 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];
+ value = new TCHAR[0];
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);
+
// 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);
}