mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-05 23:35:48 +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();
|
name = name.toUpperCase();
|
||||||
return name;
|
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[]){
|
protected IBuildEnvironmentVariable[] filterVariables(IBuildEnvironmentVariable variables[]){
|
||||||
if(variables == null || variables.length == 0)
|
return EnvVarOperationProcessor.filterVariables(variables,fNonOverloadableVariables);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -326,23 +326,7 @@ public class UserDefinedEnvironmentSupplier extends
|
||||||
}
|
}
|
||||||
|
|
||||||
protected IBuildEnvironmentVariable[] filterVariables(IBuildEnvironmentVariable variables[]){
|
protected IBuildEnvironmentVariable[] filterVariables(IBuildEnvironmentVariable variables[]){
|
||||||
if(variables == null || variables.length == 0)
|
return EnvVarOperationProcessor.filterVariables(variables,fNonOverloadableVariables);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -177,23 +177,7 @@ public class ExternalExtensionMacroSupplier implements IBuildMacroSupplier {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected IBuildMacro[] filterMacros(IBuildMacro macros[]){
|
protected IBuildMacro[] filterMacros(IBuildMacro macros[]){
|
||||||
if(macros == null || macros.length == 0)
|
return MacroResolver.filterMacros(macros,fNonOverloadableMacros);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected IBuildMacroSupplier[] filterValidSuppliers(IBuildMacroSupplier suppliers[]){
|
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.ITool;
|
||||||
import org.eclipse.cdt.managedbuilder.core.IToolChain;
|
import org.eclipse.cdt.managedbuilder.core.IToolChain;
|
||||||
import org.eclipse.cdt.managedbuilder.internal.core.Tool;
|
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.BuildMacroException;
|
||||||
import org.eclipse.cdt.managedbuilder.macros.IBuildMacro;
|
import org.eclipse.cdt.managedbuilder.macros.IBuildMacro;
|
||||||
import org.eclipse.cdt.managedbuilder.macros.IBuildMacroStatus;
|
import org.eclipse.cdt.managedbuilder.macros.IBuildMacroStatus;
|
||||||
|
@ -389,4 +390,38 @@ public class MacroResolver {
|
||||||
return collector.getExplicisFileMacros();
|
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)
|
if(macro != null)
|
||||||
macros[num++] = macro;
|
macros[num++] = macro;
|
||||||
}
|
}
|
||||||
IBuildMacro result[] = new IBuildMacro[num];
|
if(macros.length != num){
|
||||||
if(num > 0)
|
IBuildMacro tmp[] = new IBuildMacro[num];
|
||||||
System.arraycopy(macros,0,result,0,num);
|
if(num > 0)
|
||||||
return result;
|
System.arraycopy(macros,0,tmp,0,num);
|
||||||
|
macros = tmp;
|
||||||
|
}
|
||||||
|
return macros;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -894,7 +894,7 @@ public class EnvironmentBlock extends AbstractCOptionPage {
|
||||||
EnvVarCollector variables = provider.getVariables(fSystemContextInfo,includeParentLevels);
|
EnvVarCollector variables = provider.getVariables(fSystemContextInfo,includeParentLevels);
|
||||||
if(variables == null)
|
if(variables == null)
|
||||||
return null;
|
return null;
|
||||||
return filterDisplayedVariables(variables.toArray(false));
|
return filterVariables(variables.toArray(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -1054,24 +1054,8 @@ public class EnvironmentBlock extends AbstractCOptionPage {
|
||||||
/*
|
/*
|
||||||
* filteres the names to be displayed
|
* filteres the names to be displayed
|
||||||
*/
|
*/
|
||||||
protected IBuildEnvironmentVariable[] filterDisplayedVariables(IBuildEnvironmentVariable variables[]){
|
protected IBuildEnvironmentVariable[] filterVariables(IBuildEnvironmentVariable variables[]){
|
||||||
if(variables == null || variables.length == 0)
|
return EnvVarOperationProcessor.filterVariables(variables,fHiddenVariables);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateState(BuildMacroException e){
|
private void updateState(BuildMacroException e){
|
||||||
|
|
|
@ -982,7 +982,7 @@ public class MacrosBlock extends AbstractCOptionPage {
|
||||||
IBuildMacro macros[] = BuildMacroProvider.getMacros(fSystemContextInfo,includeParentLevels);
|
IBuildMacro macros[] = BuildMacroProvider.getMacros(fSystemContextInfo,includeParentLevels);
|
||||||
if(macros == null)
|
if(macros == null)
|
||||||
return null;
|
return null;
|
||||||
return filterDisplayedMacros(macros);
|
return filterMacros(macros);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -1146,24 +1146,8 @@ public class MacrosBlock extends AbstractCOptionPage {
|
||||||
/*
|
/*
|
||||||
* filteres the macros to be displayed
|
* filteres the macros to be displayed
|
||||||
*/
|
*/
|
||||||
protected IBuildMacro[] filterDisplayedMacros(IBuildMacro macros[]){
|
protected IBuildMacro[] filterMacros(IBuildMacro macros[]){
|
||||||
if(macros == null || macros.length == 0)
|
return MacroResolver.filterMacros(macros,fHiddenMacros);
|
||||||
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 IEnvironmentVariableProvider obtainEnvironmentVariableProvider(){
|
protected IEnvironmentVariableProvider obtainEnvironmentVariableProvider(){
|
||||||
|
|
Loading…
Add table
Reference in a new issue