From 5bbbd7720b1bebd62919fd2aed9a903c24e7a689 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Tue, 23 Jun 2009 12:20:04 +0000 Subject: [PATCH] Endless loop in content-assist, bug 280934 --- .../core/parser/tests/prefix/BasicCompletionTest.java | 8 +++++++- .../core/dom/parser/cpp/GNUCPPSourceParser.java | 11 ++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/prefix/BasicCompletionTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/prefix/BasicCompletionTest.java index 31a60a41d7e..2c9b2188976 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/prefix/BasicCompletionTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/prefix/BasicCompletionTest.java @@ -161,5 +161,11 @@ public class BasicCompletionTest extends CompletionTestBase { checkCompletion(code, true, expected); checkCompletion(code, false, expected); } - + + // template returnValue = new ArrayList(DEFAULT_PARM_LIST_SIZE); for (;;) { - if (LT(1) == IToken.tGT) + final int lt1= LT(1); + if (lt1 == IToken.tGT || lt1 == IToken.tEOC) return returnValue; - if (LT(1) == IToken.t_class || LT(1) == IToken.t_typename) { + if (lt1 == IToken.t_class || lt1 == IToken.t_typename) { IToken startingToken = LA(1); int lastOffset = 0; - int type = (LT(1) == IToken.t_class ? ICPPASTSimpleTypeTemplateParameter.st_class + int type = (lt1 == IToken.t_class ? ICPPASTSimpleTypeTemplateParameter.st_class : ICPPASTSimpleTypeTemplateParameter.st_typename); lastOffset = consume().getEndOffset(); IASTName identifierName = null; @@ -1500,7 +1501,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { ((ASTNode) parm).setOffsetAndLength(startingToken.getOffset(), lastOffset - startingToken.getOffset()); returnValue.add(parm); - } else if (LT(1) == IToken.t_template) { + } else if (lt1 == IToken.t_template) { IToken firstToken = consume(); consume(IToken.tLT); @@ -1530,7 +1531,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { } returnValue.add(parm); - } else if (LT(1) == IToken.tCOMMA) { + } else if (lt1 == IToken.tCOMMA) { consume(); continue; } else {