diff options
author | Mikhail Sennikovsky | 2005-05-31 11:27:56 +0000 |
---|---|---|
committer | Mikhail Sennikovsky | 2005-05-31 11:27:56 +0000 |
commit | 78baded27036986af0743457c6d6103d2b8f6d78 (patch) | |
tree | ded48adbc1d61f722250fd0b318ceb7079c4e540 /build | |
parent | 53358d181d7c7f3228758817d80ad586a7f524d2 (diff) | |
download | org.eclipse.cdt-78baded27036986af0743457c6d6103d2b8f6d78.tar.gz org.eclipse.cdt-78baded27036986af0743457c6d6103d2b8f6d78.tar.xz org.eclipse.cdt-78baded27036986af0743457c6d6103d2b8f6d78.zip |
Some minor fixes for the build Environment and Macros: some extra-checks for null were added
Diffstat (limited to 'build')
8 files changed, 85 insertions, 93 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvVarOperationProcessor.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvVarOperationProcessor.java index c489219f93d..6a38f52a4b4 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvVarOperationProcessor.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvVarOperationProcessor.java @@ -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; + } } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/ExternalExtensionEnvironmentSupplier.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/ExternalExtensionEnvironmentSupplier.java index a15b626f273..403dec520b5 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/ExternalExtensionEnvironmentSupplier.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/ExternalExtensionEnvironmentSupplier.java @@ -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); } } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/UserDefinedEnvironmentSupplier.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/UserDefinedEnvironmentSupplier.java index 89fb51ec0d1..5bd3c8fe29c 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/UserDefinedEnvironmentSupplier.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/UserDefinedEnvironmentSupplier.java @@ -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); } } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/ExternalExtensionMacroSupplier.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/ExternalExtensionMacroSupplier.java index 0f1c97c985d..1f8e8b08a8e 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/ExternalExtensionMacroSupplier.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/ExternalExtensionMacroSupplier.java @@ -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[]){ diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MacroResolver.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MacroResolver.java index 1210ee6aa79..1bb1c5bffea 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MacroResolver.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MacroResolver.java @@ -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; + } + } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java index c4a080838d4..11f69b53714 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/MbsMacroSupplier.java @@ -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; } diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/EnvironmentBlock.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/EnvironmentBlock.java index bf147bc87da..2cfad162c12 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/EnvironmentBlock.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/EnvironmentBlock.java @@ -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){ diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/MacrosBlock.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/MacrosBlock.java index 991ea890cf7..028ee549b9b 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/MacrosBlock.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/MacrosBlock.java @@ -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(){ |