diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/CPropertyVarsTab.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/CPropertyVarsTab.java index 0abd107e87e..9067264aafa 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/CPropertyVarsTab.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/CPropertyVarsTab.java @@ -116,7 +116,7 @@ public class CPropertyVarsTab extends AbstractCPropertyTab { private static final EnvCmp comparator = new EnvCmp(); private ICConfigurationDescription cfgd = null; - private IStorableCdtVariables vars = null; + private IStorableCdtVariables prefvars = null; //currently the "CWD" and "PWD" macros are not displayed in UI private static final String fHiddenMacros[] = new String[]{ @@ -293,8 +293,8 @@ public class CPropertyVarsTab extends AbstractCPropertyTab { fUserSup.createMacro(macro, cfgd); } } - else if (vars != null) - vars.createMacro(macro); + else if (chkVars()) + prefvars.createMacro(macro); updateData(); } @@ -329,8 +329,8 @@ public class CPropertyVarsTab extends AbstractCPropertyTab { else fUserSup.deleteMacro(macros[i].getName(), cfgd); } - else if (vars != null) - vars.deleteMacro(macros[i].getName()); + else if (chkVars()) + prefvars.deleteMacro(macros[i].getName()); } updateData(); } @@ -344,7 +344,7 @@ public class CPropertyVarsTab extends AbstractCPropertyTab { private ICdtVariable[] getSelectedUserMacros(){ if(tv == null) return null; List list = ((IStructuredSelection)tv.getSelection()).toList(); - return (ICdtVariable[])list.toArray(new ICdtVariable[list.size()]); + return list.toArray(new ICdtVariable[list.size()]); } /* (non-Javadoc) @@ -362,8 +362,8 @@ public class CPropertyVarsTab extends AbstractCPropertyTab { } else fUserSup.deleteAll(cfgd); } - else if (vars != null) - vars.deleteAll(); + else if (chkVars()) + prefvars.deleteAll(); updateData(); } } @@ -484,15 +484,20 @@ public class CPropertyVarsTab extends AbstractCPropertyTab { public void updateData(ICResourceDescription _cfgd) { if (_cfgd == null) { cfgd = null; - if (vars == null) - vars = fUserSup.getWorkspaceVariablesCopy(); + chkVars(); } else { cfgd = _cfgd.getConfiguration(); - vars = null; + prefvars = null; } updateData(); } + private boolean chkVars() { + if (prefvars == null) + prefvars = fUserSup.getWorkspaceVariablesCopy(); + return (prefvars != null); + } + private void checkVariableIntegrity() { try{ if (page.isMultiCfg() && cfgd instanceof ICMultiItemsHolder) { @@ -533,9 +538,10 @@ public class CPropertyVarsTab extends AbstractCPropertyTab { updateLbs(lb1, lb2); if (cfgd == null) { + chkVars(); if (fShowSysMacros) { List lst = new ArrayList(_vars.length); - ICdtVariable[] uvars = vars.getMacros(); + ICdtVariable[] uvars = prefvars.getMacros(); for (int i=0; i