mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-03 14:25:37 +02:00
Some minor fixes for the build Environment and Macros: some extra-checks for null were added
This commit is contained in:
parent
53358d181d
commit
78baded270
8 changed files with 85 additions and 93 deletions
|
@ -248,4 +248,38 @@ public class EnvVarOperationProcessor {
|
|||
name = name.toUpperCase();
|
||||
return name;
|
||||
}
|
||||
|
||||
static public IBuildEnvironmentVariable[] filterVariables(IBuildEnvironmentVariable variables[], String remove[]){
|
||||
|
||||
if(variables == null || variables.length == 0)
|
||||
return variables;
|
||||
|
||||
IBuildEnvironmentVariable filtered[] = new IBuildEnvironmentVariable[variables.length];
|
||||
int filteredNum = 0;
|
||||
for(int i = 0; i < variables.length; i++){
|
||||
IBuildEnvironmentVariable var = variables[i];
|
||||
String name = null;
|
||||
if(var != null && (name = normalizeName(var.getName())) != null){
|
||||
boolean skip = false;
|
||||
if(remove != null && remove.length > 0){
|
||||
for(int j = 0; j < remove.length; j++){
|
||||
if(remove[j] != null && remove[j].equals(name)){
|
||||
skip = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!skip)
|
||||
filtered[filteredNum++] = var;
|
||||
}
|
||||
}
|
||||
|
||||
if(filteredNum != filtered.length){
|
||||
IBuildEnvironmentVariable vars[] = new IBuildEnvironmentVariable[filteredNum];
|
||||
for(int i = 0; i < filteredNum; i++)
|
||||
vars[i] = filtered[i];
|
||||
filtered = vars;
|
||||
}
|
||||
return filtered;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -209,22 +209,6 @@ public class ExternalExtensionEnvironmentSupplier implements
|
|||
}
|
||||
|
||||
protected IBuildEnvironmentVariable[] filterVariables(IBuildEnvironmentVariable variables[]){
|
||||
if(variables == null || variables.length == 0)
|
||||
return variables;
|
||||
|
||||
IBuildEnvironmentVariable filtered[] = new IBuildEnvironmentVariable[variables.length];
|
||||
int filteredNum = 0;
|
||||
for(int i = 0; i < variables.length; i++){
|
||||
if(getValidName(variables[i].getName()) != null)
|
||||
filtered[filteredNum++] = variables[i];
|
||||
}
|
||||
|
||||
if(filteredNum != filtered.length){
|
||||
IBuildEnvironmentVariable vars[] = new IBuildEnvironmentVariable[filteredNum];
|
||||
for(int i = 0; i < filteredNum; i++)
|
||||
vars[i] = filtered[i];
|
||||
filtered = vars;
|
||||
}
|
||||
return filtered;
|
||||
return EnvVarOperationProcessor.filterVariables(variables,fNonOverloadableVariables);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -326,23 +326,7 @@ public class UserDefinedEnvironmentSupplier extends
|
|||
}
|
||||
|
||||
protected IBuildEnvironmentVariable[] filterVariables(IBuildEnvironmentVariable variables[]){
|
||||
if(variables == null || variables.length == 0)
|
||||
return variables;
|
||||
|
||||
IBuildEnvironmentVariable filtered[] = new IBuildEnvironmentVariable[variables.length];
|
||||
int filteredNum = 0;
|
||||
for(int i = 0; i < variables.length; i++){
|
||||
if(getValidName(variables[i].getName()) != null)
|
||||
filtered[filteredNum++] = variables[i];
|
||||
}
|
||||
|
||||
if(filteredNum != filtered.length){
|
||||
IBuildEnvironmentVariable vars[] = new IBuildEnvironmentVariable[filteredNum];
|
||||
for(int i = 0; i < filteredNum; i++)
|
||||
vars[i] = filtered[i];
|
||||
filtered = vars;
|
||||
}
|
||||
return filtered;
|
||||
return EnvVarOperationProcessor.filterVariables(variables,fNonOverloadableVariables);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -177,23 +177,7 @@ public class ExternalExtensionMacroSupplier implements IBuildMacroSupplier {
|
|||
}
|
||||
|
||||
protected IBuildMacro[] filterMacros(IBuildMacro macros[]){
|
||||
if(macros == null || macros.length == 0)
|
||||
return macros;
|
||||
|
||||
IBuildMacro filtered[] = new IBuildMacro[macros.length];
|
||||
int filteredNum = 0;
|
||||
for(int i = 0; i < macros.length; i++){
|
||||
if(getValidName(macros[i].getName()) != null)
|
||||
filtered[filteredNum++] = macros[i];
|
||||
}
|
||||
|
||||
if(filteredNum != filtered.length){
|
||||
IBuildMacro m[] = new IBuildMacro[filteredNum];
|
||||
for(int i = 0; i < filteredNum; i++)
|
||||
m[i] = filtered[i];
|
||||
filtered = m;
|
||||
}
|
||||
return filtered;
|
||||
return MacroResolver.filterMacros(macros,fNonOverloadableMacros);
|
||||
}
|
||||
|
||||
protected IBuildMacroSupplier[] filterValidSuppliers(IBuildMacroSupplier suppliers[]){
|
||||
|
|
|
@ -20,6 +20,7 @@ import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
|||
import org.eclipse.cdt.managedbuilder.core.ITool;
|
||||
import org.eclipse.cdt.managedbuilder.core.IToolChain;
|
||||
import org.eclipse.cdt.managedbuilder.internal.core.Tool;
|
||||
import org.eclipse.cdt.managedbuilder.internal.envvar.EnvVarOperationProcessor;
|
||||
import org.eclipse.cdt.managedbuilder.macros.BuildMacroException;
|
||||
import org.eclipse.cdt.managedbuilder.macros.IBuildMacro;
|
||||
import org.eclipse.cdt.managedbuilder.macros.IBuildMacroStatus;
|
||||
|
@ -389,4 +390,38 @@ public class MacroResolver {
|
|||
return collector.getExplicisFileMacros();
|
||||
}
|
||||
|
||||
static public IBuildMacro[] filterMacros(IBuildMacro macros[], String remove[]){
|
||||
|
||||
if(macros == null || macros.length == 0)
|
||||
return macros;
|
||||
|
||||
IBuildMacro filtered[] = new IBuildMacro[macros.length];
|
||||
int filteredNum = 0;
|
||||
for(int i = 0; i < macros.length; i++){
|
||||
IBuildMacro var = macros[i];
|
||||
String name = null;
|
||||
if(var != null && (name = EnvVarOperationProcessor.normalizeName(var.getName())) != null){
|
||||
boolean skip = false;
|
||||
if(remove != null && remove.length > 0){
|
||||
for(int j = 0; j < remove.length; j++){
|
||||
if(remove[j] != null && remove[j].equals(name)){
|
||||
skip = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!skip)
|
||||
filtered[filteredNum++] = var;
|
||||
}
|
||||
}
|
||||
|
||||
if(filteredNum != filtered.length){
|
||||
IBuildMacro m[] = new IBuildMacro[filteredNum];
|
||||
for(int i = 0; i < filteredNum; i++)
|
||||
m[i] = filtered[i];
|
||||
filtered = m;
|
||||
}
|
||||
return filtered;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -494,10 +494,13 @@ public class MbsMacroSupplier implements IBuildMacroSupplier {
|
|||
if(macro != null)
|
||||
macros[num++] = macro;
|
||||
}
|
||||
IBuildMacro result[] = new IBuildMacro[num];
|
||||
if(num > 0)
|
||||
System.arraycopy(macros,0,result,0,num);
|
||||
return result;
|
||||
if(macros.length != num){
|
||||
IBuildMacro tmp[] = new IBuildMacro[num];
|
||||
if(num > 0)
|
||||
System.arraycopy(macros,0,tmp,0,num);
|
||||
macros = tmp;
|
||||
}
|
||||
return macros;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -894,7 +894,7 @@ public class EnvironmentBlock extends AbstractCOptionPage {
|
|||
EnvVarCollector variables = provider.getVariables(fSystemContextInfo,includeParentLevels);
|
||||
if(variables == null)
|
||||
return null;
|
||||
return filterDisplayedVariables(variables.toArray(false));
|
||||
return filterVariables(variables.toArray(false));
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -1054,24 +1054,8 @@ public class EnvironmentBlock extends AbstractCOptionPage {
|
|||
/*
|
||||
* filteres the names to be displayed
|
||||
*/
|
||||
protected IBuildEnvironmentVariable[] filterDisplayedVariables(IBuildEnvironmentVariable variables[]){
|
||||
if(variables == null || variables.length == 0)
|
||||
return variables;
|
||||
|
||||
IBuildEnvironmentVariable filtered[] = new IBuildEnvironmentVariable[variables.length];
|
||||
int filteredNum = 0;
|
||||
for(int i = 0; i < variables.length; i++){
|
||||
if(canDisplay(variables[i].getName()))
|
||||
filtered[filteredNum++] = variables[i];
|
||||
}
|
||||
|
||||
if(filteredNum != filtered.length){
|
||||
IBuildEnvironmentVariable vars[] = new IBuildEnvironmentVariable[filteredNum];
|
||||
for(int i = 0; i < filteredNum; i++)
|
||||
vars[i] = filtered[i];
|
||||
filtered = vars;
|
||||
}
|
||||
return filtered;
|
||||
protected IBuildEnvironmentVariable[] filterVariables(IBuildEnvironmentVariable variables[]){
|
||||
return EnvVarOperationProcessor.filterVariables(variables,fHiddenVariables);
|
||||
}
|
||||
|
||||
private void updateState(BuildMacroException e){
|
||||
|
|
|
@ -982,7 +982,7 @@ public class MacrosBlock extends AbstractCOptionPage {
|
|||
IBuildMacro macros[] = BuildMacroProvider.getMacros(fSystemContextInfo,includeParentLevels);
|
||||
if(macros == null)
|
||||
return null;
|
||||
return filterDisplayedMacros(macros);
|
||||
return filterMacros(macros);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -1146,24 +1146,8 @@ public class MacrosBlock extends AbstractCOptionPage {
|
|||
/*
|
||||
* filteres the macros to be displayed
|
||||
*/
|
||||
protected IBuildMacro[] filterDisplayedMacros(IBuildMacro macros[]){
|
||||
if(macros == null || macros.length == 0)
|
||||
return macros;
|
||||
|
||||
IBuildMacro filtered[] = new IBuildMacro[macros.length];
|
||||
int filteredNum = 0;
|
||||
for(int i = 0; i < macros.length; i++){
|
||||
if(canDisplay(macros[i].getName()))
|
||||
filtered[filteredNum++] = macros[i];
|
||||
}
|
||||
|
||||
if(filteredNum != filtered.length){
|
||||
IBuildMacro tmp[] = new IBuildMacro[filteredNum];
|
||||
for(int i = 0; i < filteredNum; i++)
|
||||
tmp[i] = filtered[i];
|
||||
filtered = tmp;
|
||||
}
|
||||
return filtered;
|
||||
protected IBuildMacro[] filterMacros(IBuildMacro macros[]){
|
||||
return MacroResolver.filterMacros(macros,fHiddenMacros);
|
||||
}
|
||||
|
||||
protected IEnvironmentVariableProvider obtainEnvironmentVariableProvider(){
|
||||
|
|
Loading…
Add table
Reference in a new issue