From 054e494e107bb72aa75fa3c4e94455fd54cfd658 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B6rn=20Svensson?= Date: Fri, 3 Jun 2022 07:31:22 +0200 Subject: [PATCH] Bug 580113: Do not reuse ICommandLauncher MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each command should have it's own command launcher. The alternative is to ensure that the previous command has finished prior to launching the next one, but that's harder to acchieve as it's up to the consumer of Builder to fullfill. Contributed by STMicroelectronics Change-Id: I17038220ccd7c1767328ecfce92f28d8205c1d56 Signed-off-by: Torbjörn Svensson --- .../managedbuilder/internal/core/Builder.java | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java index f3da4f8db5d..3558cbc4488 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java @@ -146,7 +146,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider private ICOutputEntry[] outputEntries; - private ICommandLauncher fCommandLauncher = null; private IConfigurationElement fCommandLauncherElement = null; private AbstractBuildRunner fBuildRunner = null; @@ -336,7 +335,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider super.copyChildren(builder); - fCommandLauncher = builder.fCommandLauncher; fCommandLauncherElement = builder.fCommandLauncherElement; fBuildRunner = builder.fBuildRunner; @@ -2843,25 +2841,18 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider @Override public ICommandLauncher getCommandLauncher() { - if (fCommandLauncher != null) - return fCommandLauncher; - - if (fCommandLauncher == null && fCommandLauncherElement != null) { + if (fCommandLauncherElement != null) { try { - fCommandLauncher = (ICommandLauncher) fCommandLauncherElement - .createExecutableExtension(ATTRIBUTE_COMMAND_LAUNCHER); - return fCommandLauncher; + return (ICommandLauncher) fCommandLauncherElement.createExecutableExtension(ATTRIBUTE_COMMAND_LAUNCHER); } catch (CoreException e) { e.printStackTrace(); } } - if (fCommandLauncher == null && superClass != null) + if (superClass != null) return getSuperClass().getCommandLauncher(); - else if (fCommandLauncher == null) // catch all for backwards compatibility - fCommandLauncher = CommandLauncherManager.getInstance().getCommandLauncher(); - - return fCommandLauncher; + // catch all for backwards compatibility + return CommandLauncherManager.getInstance().getCommandLauncher(); } @Override