1
0
Fork 0
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:
Mikhail Sennikovsky 2005-05-31 11:27:56 +00:00
parent 53358d181d
commit 78baded270
8 changed files with 85 additions and 93 deletions

View file

@ -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;
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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[]){

View file

@ -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;
}
}

View file

@ -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;
}

View file

@ -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){

View file

@ -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(){