From 0dabaa15fb2caf5ff19959827ab0d0adba676d14 Mon Sep 17 00:00:00 2001 From: Jonah Graham Date: Sun, 19 Mar 2023 14:34:33 -0400 Subject: [PATCH] Handle null "DisplayName" in registry Fixes #330 --- .../cdt/build/gcc/core/internal/Msys2ToolChainProvider.java | 3 +++ .../utils/org/eclipse/cdt/internal/core/MinGW.java | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/Msys2ToolChainProvider.java b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/Msys2ToolChainProvider.java index 7263b690743..38a95bbf118 100644 --- a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/Msys2ToolChainProvider.java +++ b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/Msys2ToolChainProvider.java @@ -48,6 +48,9 @@ public void init(IToolChainManager manager) { for (int i = 0; (subkey = registry.getCurrentUserKeyName(uninstallKey, i)) != null; i++) { String compKey = uninstallKey + '\\' + subkey; String displayName = registry.getCurrentUserValue(compKey, "DisplayName"); //$NON-NLS-1$ + if (displayName == null) { + continue; + } if (on64bit) { if (MSYS2_64BIT_NAMES.contains(displayName)) { if (addToolChain64(manager, registry, compKey)) { diff --git a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/internal/core/MinGW.java b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/internal/core/MinGW.java index eadd6110bcb..79eb8cdd8e3 100644 --- a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/internal/core/MinGW.java +++ b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/internal/core/MinGW.java @@ -95,6 +95,9 @@ private static String findMinGWRoot(String envPathValue, String envMinGWHomeValu for (int i = 0; (subkey = registry.getCurrentUserKeyName(uninstallKey, i)) != null; i++) { String compKey = uninstallKey + '\\' + subkey; String displayName = registry.getCurrentUserValue(compKey, "DisplayName"); //$NON-NLS-1$ + if (displayName == null) { + continue; + } if (on64bit) { if (MSYS2_64BIT_NAMES.contains(displayName)) { String installLocation = registry.getCurrentUserValue(compKey, "InstallLocation"); //$NON-NLS-1$ @@ -230,6 +233,9 @@ private static String findMSysRoot(String envMinGWHomeValue) { for (int i = 0; (subkey = registry.getCurrentUserKeyName(uninstallKey, i)) != null; i++) { String compKey = uninstallKey + '\\' + subkey; String displayName = registry.getCurrentUserValue(compKey, "DisplayName"); //$NON-NLS-1$ + if (displayName == null) { + continue; + } if (on64bit) { if (MSYS2_64BIT_NAMES.contains(displayName)) { String home = registry.getCurrentUserValue(compKey, "InstallLocation"); //$NON-NLS-1$