Index: dom/org/eclipse/jdt/core/dom/CompilationUnitResolver.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnitResolver.java,v retrieving revision 1.107 diff -u -r1.107 CompilationUnitResolver.java --- dom/org/eclipse/jdt/core/dom/CompilationUnitResolver.java 31 May 2005 10:42:08 -0000 1.107 +++ dom/org/eclipse/jdt/core/dom/CompilationUnitResolver.java 28 Sep 2005 14:15:10 -0000 @@ -249,7 +249,7 @@ ast.setBindingResolver(resolver); converter.setAST(ast); compilationUnit = converter.convert(compilationUnitDeclaration, source); - compilationUnit.setLineEndTable(compilationUnitDeclaration.compilationResult.lineSeparatorPositions); + compilationUnit.setLineEndTable(compilationUnitDeclaration.compilationResult.getLineSeparatorPositions()); ast.setDefaultNodeFlag(0); ast.setOriginalModificationCount(ast.modificationCount()); return compilationUnit; @@ -683,7 +683,7 @@ converter.setAST(ast); CompilationUnit compilationUnit = converter.convert(unit, contents); compilationUnit.setJavaElement(source); - compilationUnit.setLineEndTable(compilationResult.lineSeparatorPositions); + compilationUnit.setLineEndTable(compilationResult.getLineSeparatorPositions()); ast.setDefaultNodeFlag(0); ast.setOriginalModificationCount(ast.modificationCount()); Index: dom/org/eclipse/jdt/core/dom/AST.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java,v retrieving revision 1.143 diff -u -r1.143 AST.java --- dom/org/eclipse/jdt/core/dom/AST.java 28 Jul 2005 16:33:24 -0000 1.143 +++ dom/org/eclipse/jdt/core/dom/AST.java 28 Sep 2005 14:15:10 -0000 @@ -268,7 +268,7 @@ converter.setAST(ast); CompilationUnit unit = converter.convert(compilationUnitDeclaration, source); - unit.setLineEndTable(compilationUnitDeclaration.compilationResult.lineSeparatorPositions); + unit.setLineEndTable(compilationUnitDeclaration.compilationResult.getLineSeparatorPositions()); unit.setJavaElement(workingCopy); ast.setDefaultNodeFlag(savedDefaultNodeFlag); return unit; Index: compiler/org/eclipse/jdt/internal/compiler/problem/AbortCompilation.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/AbortCompilation.java,v retrieving revision 1.11 diff -u -r1.11 AbortCompilation.java --- compiler/org/eclipse/jdt/internal/compiler/problem/AbortCompilation.java 23 Feb 2005 02:47:27 -0000 1.11 +++ compiler/org/eclipse/jdt/internal/compiler/problem/AbortCompilation.java 28 Sep 2005 14:15:09 -0000 @@ -60,7 +60,7 @@ if (this.problem.getSourceStart() != 0 || this.problem.getSourceEnd() != 0) return; this.problem.setSourceStart(invocationSite.sourceStart()); this.problem.setSourceEnd(invocationSite.sourceEnd()); - this.problem.setSourceLineNumber(ProblemHandler.searchLineNumber(unitResult.lineSeparatorPositions, invocationSite.sourceStart())); + this.problem.setSourceLineNumber(ProblemHandler.searchLineNumber(unitResult.getLineSeparatorPositions(), invocationSite.sourceStart())); this.compilationResult = unitResult; } @@ -69,7 +69,7 @@ if (this.problem.getSourceStart() != 0 || this.problem.getSourceEnd() != 0) return; this.problem.setSourceStart(astNode.sourceStart()); this.problem.setSourceEnd(astNode.sourceEnd()); - this.problem.setSourceLineNumber(ProblemHandler.searchLineNumber(unitResult.lineSeparatorPositions, astNode.sourceStart())); + this.problem.setSourceLineNumber(ProblemHandler.searchLineNumber(unitResult.getLineSeparatorPositions(), astNode.sourceStart())); this.compilationResult = unitResult; } } Index: compiler/org/eclipse/jdt/internal/compiler/problem/ProblemHandler.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemHandler.java,v retrieving revision 1.18 diff -u -r1.18 ProblemHandler.java --- compiler/org/eclipse/jdt/internal/compiler/problem/ProblemHandler.java 6 May 2005 19:18:04 -0000 1.18 +++ compiler/org/eclipse/jdt/internal/compiler/problem/ProblemHandler.java 28 Sep 2005 14:15:09 -0000 @@ -106,7 +106,7 @@ problemStartPosition, problemEndPosition, problemStartPosition >= 0 - ? searchLineNumber(unitResult.lineSeparatorPositions, problemStartPosition) + ? searchLineNumber(unitResult.getLineSeparatorPositions(), problemStartPosition) : 0); if (problem == null) return; // problem couldn't be created, ignore Index: model/org/eclipse/jdt/internal/core/util/CodeSnippetParsingUtil.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CodeSnippetParsingUtil.java,v retrieving revision 1.10 diff -u -r1.10 CodeSnippetParsingUtil.java --- model/org/eclipse/jdt/internal/core/util/CodeSnippetParsingUtil.java 23 Feb 2005 02:47:31 -0000 1.10 +++ model/org/eclipse/jdt/internal/core/util/CodeSnippetParsingUtil.java 28 Sep 2005 14:15:10 -0000 @@ -44,7 +44,7 @@ System.arraycopy(compilationResultProblems, 0, (problems = new IProblem[problemsCount]), 0, problemsCount); } } - return new RecordedParsingInformation(problems, compilationResult.lineSeparatorPositions, parser.getCommentsPositions()); + return new RecordedParsingInformation(problems, compilationResult.getLineSeparatorPositions(), parser.getCommentsPositions()); } public ASTNode[] parseClassBodyDeclarations(char[] source, Map settings, boolean recordParsingInformation) { Index: model/org/eclipse/jdt/internal/compiler/SourceElementParser.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/compiler/SourceElementParser.java,v retrieving revision 1.50 diff -u -r1.50 SourceElementParser.java --- model/org/eclipse/jdt/internal/compiler/SourceElementParser.java 7 Sep 2005 07:45:57 -0000 1.50 +++ model/org/eclipse/jdt/internal/compiler/SourceElementParser.java 28 Sep 2005 14:15:10 -0000 @@ -1301,7 +1301,7 @@ CompilationResult compilationUnitResult = new CompilationResult(unit, 0, 0, this.options.maxProblemsPerUnit); CompilationUnitDeclaration parsedUnit = parse(unit, compilationUnitResult, start, end); if (scanner.recordLineSeparator) { - requestor.acceptLineSeparatorPositions(compilationUnitResult.lineSeparatorPositions); + requestor.acceptLineSeparatorPositions(compilationUnitResult.getLineSeparatorPositions()); } if (this.localDeclarationVisitor != null || fullParse){ diet = false; @@ -1331,7 +1331,7 @@ CompilationResult compilationUnitResult = new CompilationResult(unit, 0, 0, this.options.maxProblemsPerUnit); CompilationUnitDeclaration parsedUnit = parse(unit, compilationUnitResult); if (scanner.recordLineSeparator) { - requestor.acceptLineSeparatorPositions(compilationUnitResult.lineSeparatorPositions); + requestor.acceptLineSeparatorPositions(compilationUnitResult.getLineSeparatorPositions()); } int initialStart = this.scanner.initialPosition; int initialEnd = this.scanner.eofPosition; @@ -1401,7 +1401,7 @@ // ignore this exception } finally { if (scanner.recordLineSeparator) { - requestor.acceptLineSeparatorPositions(compilationUnitResult.lineSeparatorPositions); + requestor.acceptLineSeparatorPositions(compilationUnitResult.getLineSeparatorPositions()); } diet = old; } Index: compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java,v retrieving revision 1.113 diff -u -r1.113 CodeStream.java --- compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java 8 Aug 2005 12:57:42 -0000 1.113 +++ compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java 28 Sep 2005 14:15:08 -0000 @@ -77,7 +77,7 @@ this.generateLineNumberAttributes = (classFile.produceDebugAttributes & CompilerOptions.Lines) != 0; this.generateLocalVariableTableAttributes = (classFile.produceDebugAttributes & CompilerOptions.Vars) != 0; if (this.generateLineNumberAttributes) { - this.lineSeparatorPositions = classFile.referenceBinding.scope.referenceCompilationUnit().compilationResult.lineSeparatorPositions; + this.lineSeparatorPositions = classFile.referenceBinding.scope.referenceCompilationUnit().compilationResult.getLineSeparatorPositions(); } } final public void aaload() { Index: compiler/org/eclipse/jdt/internal/compiler/CompilationResult.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/CompilationResult.java,v retrieving revision 1.44 diff -u -r1.44 CompilationResult.java --- compiler/org/eclipse/jdt/internal/compiler/CompilationResult.java 9 Sep 2005 19:29:46 -0000 1.44 +++ compiler/org/eclipse/jdt/internal/compiler/CompilationResult.java 28 Sep 2005 14:15:08 -0000 @@ -45,6 +45,7 @@ import org.eclipse.jdt.internal.compiler.problem.ProblemReporter; public class CompilationResult { + private static final int[] EMPTY_LINE_ENDS = new int[0]; public IProblem problems[]; public IProblem tasks[]; @@ -257,6 +258,11 @@ return errors; } + + public int[] getLineSeparatorPositions() { + return this.lineSeparatorPositions == null ? EMPTY_LINE_ENDS : this.lineSeparatorPositions; + } + /** * Answer the problems (errors and warnings) encountered during compilation. * Index: compiler/org/eclipse/jdt/internal/compiler/ClassFile.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ClassFile.java,v retrieving revision 1.113 diff -u -r1.113 ClassFile.java --- compiler/org/eclipse/jdt/internal/compiler/ClassFile.java 25 Jul 2005 14:49:39 -0000 1.113 +++ compiler/org/eclipse/jdt/internal/compiler/ClassFile.java 28 Sep 2005 14:15:08 -0000 @@ -947,7 +947,7 @@ completeCodeAttributeForMissingAbstractProblemMethod( methodBinding, codeAttributeOffset, - compilationResult.lineSeparatorPositions, + compilationResult.getLineSeparatorPositions(), problem.getSourceLineNumber()); completeMethodInfo(methodAttributeOffset, attributeNumber); @@ -1000,11 +1000,6 @@ attributeNumber++; // code attribute completeCodeAttributeForClinit( codeAttributeOffset, - referenceBinding - .scope - .referenceCompilationUnit() - .compilationResult - .lineSeparatorPositions, problemLine); contents[attributeOffset++] = (byte) (attributeNumber >> 8); contents[attributeOffset] = (byte) attributeNumber; @@ -1067,7 +1062,7 @@ .scope .referenceCompilationUnit() .compilationResult - .lineSeparatorPositions, + .getLineSeparatorPositions(), problemLine); completeMethodInfo(methodAttributeOffset, attributeNumber); } @@ -1157,7 +1152,7 @@ .scope .referenceCompilationUnit() .compilationResult - .lineSeparatorPositions, + .getLineSeparatorPositions(), problemLine); completeMethodInfo(methodAttributeOffset, attributeNumber); } @@ -1270,7 +1265,7 @@ .scope .referenceCompilationUnit() .compilationResult - .lineSeparatorPositions); + .getLineSeparatorPositions()); // update the number of attributes contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8); contents[methodAttributeOffset] = (byte) attributeNumber; @@ -1300,7 +1295,7 @@ .scope .referenceCompilationUnit() .compilationResult - .lineSeparatorPositions); + .getLineSeparatorPositions()); // update the number of attributes contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8); contents[methodAttributeOffset] = (byte) attributeNumber; @@ -1325,7 +1320,7 @@ .scope .referenceCompilationUnit() .compilationResult - .lineSeparatorPositions); + .getLineSeparatorPositions()); // update the number of attributes contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8); contents[methodAttributeOffset] = (byte) attributeNumber; @@ -1354,7 +1349,7 @@ .scope .referenceCompilationUnit() .compilationResult - .lineSeparatorPositions); + .getLineSeparatorPositions()); // update the number of attributes contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8); contents[methodAttributeOffset] = (byte) attributeNumber; @@ -1385,7 +1380,7 @@ .scope .referenceCompilationUnit() .compilationResult - .lineSeparatorPositions); + .getLineSeparatorPositions()); // update the number of attributes contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8); contents[methodAttributeOffset] = (byte) attributeNumber; @@ -1416,7 +1411,7 @@ .scope .referenceCompilationUnit() .compilationResult - .lineSeparatorPositions); + .getLineSeparatorPositions()); // update the number of attributes contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8); contents[methodAttributeOffset] = (byte) attributeNumber; @@ -1446,7 +1441,7 @@ .scope .referenceCompilationUnit() .compilationResult - .lineSeparatorPositions); + .getLineSeparatorPositions()); // update the number of attributes contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8); contents[methodAttributeOffset] = (byte) attributeNumber; @@ -2048,13 +2043,9 @@ * - code_length * - exception table * - and debug attributes if necessary. - * - * @param codeAttributeOffset int - * @param startLineIndexes int[] */ public void completeCodeAttributeForClinit( int codeAttributeOffset, - int[] startLineIndexes, int problemLine) { // reinitialize the contents with the byte modified by the code stream this.contents = codeStream.bCodeStream;