diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/CharTable.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/CharTable.java index 4d26b788b00..fe849e0a6d1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/CharTable.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/CharTable.java @@ -159,7 +159,7 @@ public class CharTable extends HashTable { return i; // Follow the next chain - for (i = nextTable[i] - 1; i >= 0; i = nextTable[i] - 1) + for (i = nextTable[i] - 1; i >= 0 && nextTable[i] != i + 1; i = nextTable[i] - 1) if (CharArrayUtils.equals(buffer, start, len, keyTable[i])) return i; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/ObjectTable.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/ObjectTable.java index 01bdb6db5eb..7e99633714b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/ObjectTable.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/ObjectTable.java @@ -120,7 +120,7 @@ public abstract class ObjectTable extends HashTable implements Cloneable{ return i; // Follow the next chain - for (i = nextTable[i] - 1; i >= 0; i = nextTable[i] - 1) + for (i = nextTable[i] - 1; i >= 0 && nextTable[i] != i + 1; i = nextTable[i] - 1) if ( buffer.equals( keyTable[i] )) return i;