From 6e5ac901f4c2d0af7882887dcf0ddff3cdcd6824 Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Sun, 24 Feb 2013 09:59:18 -0500 Subject: [PATCH] bug 355488: Cannot delete variables from C/C++ build environment --- .../core/envvar/UserDefinedEnvironmentSupplier.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java index 73152183612..ae89d9ef715 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java @@ -283,11 +283,15 @@ public class UserDefinedEnvironmentSupplier extends } public boolean setWorkspaceEnvironment(StorableEnvironment env) { - StorableEnvironment oldEnv = getEnvironment(null); + IEnvironmentVariable[] oldVariables = fWorkspaceVariables.getVariables(); + IEnvironmentVariable[] newVariables = env.getVariables(); - fWorkspaceVariables = new StorableEnvironment(env, false); + fWorkspaceVariables.deleteAll(); + fWorkspaceVariables.setVariales(newVariables); + fWorkspaceVariables.setAppendEnvironment(env.appendEnvironment()); + fWorkspaceVariables.setAppendContributedEnvironment(env.appendContributedEnvironment()); - EnvironmentChangeEvent event = createEnvironmentChangeEvent(fWorkspaceVariables.getVariables(), oldEnv.getVariables()); + EnvironmentChangeEvent event = createEnvironmentChangeEvent(newVariables, oldVariables); storeWorkspaceEnvironment(true);