diff options
author | John Camelon | 2005-04-28 15:55:18 +0000 |
---|---|---|
committer | John Camelon | 2005-04-28 15:55:18 +0000 |
commit | 3bdeb43cf3ff0e99e61c85063651849d3a8c8722 (patch) | |
tree | 6459ef9fc426fdf718c5fc5d56d07066c26200a5 /core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTTemplateDeclaration.java | |
parent | 3c46b1d4bcea378a484b3eb891a58c4fc9ba09cb (diff) | |
download | org.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.java | 34 |
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 ) ){ |