1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-30 12:25:35 +02:00

Bug 280417 - ArrayIndexOutOfBoundsException in MementoTokenizer causes "could not update landmark markers" error

This commit is contained in:
Anton Leherbauer 2009-08-26 08:36:05 +00:00
parent 09209e6efd
commit c8ffa1d119
2 changed files with 18 additions and 2 deletions

View file

@ -245,13 +245,16 @@ public class SourceManipulation extends Parent implements ISourceManipulation, I
final String elementName;
if (token.charAt(0) != CEM_ELEMENTTYPE) {
elementName= token;
if (!memento.hasMoreTokens()) return null;
token= memento.nextToken();
} else {
// anonymous
elementName= ""; //$NON-NLS-1$
}
// element type
assert token.charAt(0) == CEM_ELEMENTTYPE;
if (token.charAt(0) != CEM_ELEMENTTYPE || !memento.hasMoreTokens()) {
return null;
}
String typeString= memento.nextToken();
int elementType;
try {
@ -270,6 +273,11 @@ public class SourceManipulation extends Parent implements ISourceManipulation, I
if (token.charAt(0) != CEM_PARAMETER) {
break;
}
if (!memento.hasMoreTokens()) {
params.add(""); //$NON-NLS-1$
token= null;
break;
}
params.add(memento.nextToken());
token= null;
} while (memento.hasMoreTokens());

View file

@ -1016,13 +1016,16 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
final String elementName;
if (token.charAt(0) != CEM_ELEMENTTYPE) {
elementName= token;
if (!memento.hasMoreTokens()) return null;
token= memento.nextToken();
} else {
// anonymous
elementName= ""; //$NON-NLS-1$
}
// element type
assert token.charAt(0) == CEM_ELEMENTTYPE;
if (token.charAt(0) != CEM_ELEMENTTYPE || !memento.hasMoreTokens()) {
return null;
}
String typeString= memento.nextToken();
int elementType;
try {
@ -1041,6 +1044,11 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
if (token.charAt(0) != CEM_PARAMETER) {
break;
}
if (!memento.hasMoreTokens()) {
params.add(""); //$NON-NLS-1$
token= null;
break;
}
params.add(memento.nextToken());
token= null;
} while (memento.hasMoreTokens());