Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Camelon2005-04-28 15:55:18 +0000
committerJohn Camelon2005-04-28 15:55:18 +0000
commit3bdeb43cf3ff0e99e61c85063651849d3a8c8722 (patch)
tree6459ef9fc426fdf718c5fc5d56d07066c26200a5 /core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java
parent3c46b1d4bcea378a484b3eb891a58c4fc9ba09cb (diff)
downloadorg.eclipse.cdt-3bdeb43cf3ff0e99e61c85063651849d3a8c8722.tar.gz
org.eclipse.cdt-3bdeb43cf3ff0e99e61c85063651849d3a8c8722.tar.xz
org.eclipse.cdt-3bdeb43cf3ff0e99e61c85063651849d3a8c8722.zip
Fixed Bug 92806 - Clean up C & C++ Syntax AST Nodes for array usage.
Diffstat (limited to 'core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java')
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java34
1 files changed, 3 insertions, 31 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java
index 490605bbe1c..a01e6d76bd6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java
@@ -15,6 +15,7 @@ import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateScope;
+import org.eclipse.cdt.core.parser.util.ArrayUtil;
/**
* @author jcamelon
@@ -59,46 +60,17 @@ public class CPPASTTemplateDeclaration extends CPPASTNode implements
*/
public ICPPASTTemplateParameter [] getTemplateParameters() {
if( parameters == null ) return ICPPASTTemplateParameter.EMPTY_TEMPLATEPARAMETER_ARRAY;
- removeNullParameters();
- return parameters;
+ return (ICPPASTTemplateParameter[]) ArrayUtil.removeNulls( ICPPASTTemplateParameter.class, parameters );
}
/* (non-Javadoc)
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateDeclaration#addTemplateParamter(org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplateParameter)
*/
public void addTemplateParamter(ICPPASTTemplateParameter parm) {
- if( parameters == null )
- {
- parameters = new ICPPASTTemplateParameter[ DEFAULT_PARMS_LIST_SIZE ];
- currentIndex = 0;
- }
- if( parameters.length == currentIndex )
- {
- ICPPASTTemplateParameter [] old = parameters;
- parameters = new ICPPASTTemplateParameter[ old.length * 2 ];
- for( int i = 0; i < old.length; ++i )
- parameters[i] = old[i];
- }
- parameters[ currentIndex++ ] = parm;
- }
- private void removeNullParameters() {
- int nullCount = 0;
- for( int i = 0; i < parameters.length; ++i )
- if( parameters[i] == null )
- ++nullCount;
- if( nullCount == 0 ) return;
- ICPPASTTemplateParameter[] old = parameters;
- int newSize = old.length - nullCount;
- parameters = new ICPPASTTemplateParameter[ newSize ];
- for( int i = 0; i < newSize; ++i )
- parameters[i] = old[i];
- currentIndex = newSize;
+ parameters = (ICPPASTTemplateParameter[]) ArrayUtil.append( ICPPASTTemplateParameter.class, parameters, parm );
}
- private int currentIndex = 0;
private ICPPASTTemplateParameter [] parameters = null;
- private static final int DEFAULT_PARMS_LIST_SIZE = 4;
-
public boolean accept( ASTVisitor action ){
if( action.shouldVisitDeclarations ){
switch( action.visit( this ) ){

Back to the top