View | Details | Raw Unified | Return to bug 110270 | Differences between
and this patch

Collapse All | Expand All

(-)dom/org/eclipse/jdt/core/dom/CompilationUnitResolver.java (-2 / +2 lines)
Lines 249-255 Link Here
249
		ast.setBindingResolver(resolver);
249
		ast.setBindingResolver(resolver);
250
		converter.setAST(ast);
250
		converter.setAST(ast);
251
		compilationUnit = converter.convert(compilationUnitDeclaration, source);
251
		compilationUnit = converter.convert(compilationUnitDeclaration, source);
252
		compilationUnit.setLineEndTable(compilationUnitDeclaration.compilationResult.lineSeparatorPositions);
252
		compilationUnit.setLineEndTable(compilationUnitDeclaration.compilationResult.getLineSeparatorPositions());
253
		ast.setDefaultNodeFlag(0);
253
		ast.setDefaultNodeFlag(0);
254
		ast.setOriginalModificationCount(ast.modificationCount());
254
		ast.setOriginalModificationCount(ast.modificationCount());
255
		return compilationUnit;
255
		return compilationUnit;
Lines 683-689 Link Here
683
							converter.setAST(ast);
683
							converter.setAST(ast);
684
							CompilationUnit compilationUnit = converter.convert(unit, contents);
684
							CompilationUnit compilationUnit = converter.convert(unit, contents);
685
							compilationUnit.setJavaElement(source);
685
							compilationUnit.setJavaElement(source);
686
							compilationUnit.setLineEndTable(compilationResult.lineSeparatorPositions);
686
							compilationUnit.setLineEndTable(compilationResult.getLineSeparatorPositions());
687
							ast.setDefaultNodeFlag(0);
687
							ast.setDefaultNodeFlag(0);
688
							ast.setOriginalModificationCount(ast.modificationCount());
688
							ast.setOriginalModificationCount(ast.modificationCount());
689
							
689
							
(-)dom/org/eclipse/jdt/core/dom/AST.java (-1 / +1 lines)
Lines 268-274 Link Here
268
		converter.setAST(ast);
268
		converter.setAST(ast);
269
	
269
	
270
		CompilationUnit unit = converter.convert(compilationUnitDeclaration, source);
270
		CompilationUnit unit = converter.convert(compilationUnitDeclaration, source);
271
		unit.setLineEndTable(compilationUnitDeclaration.compilationResult.lineSeparatorPositions);
271
		unit.setLineEndTable(compilationUnitDeclaration.compilationResult.getLineSeparatorPositions());
272
		unit.setJavaElement(workingCopy);
272
		unit.setJavaElement(workingCopy);
273
		ast.setDefaultNodeFlag(savedDefaultNodeFlag);
273
		ast.setDefaultNodeFlag(savedDefaultNodeFlag);
274
		return unit;
274
		return unit;
(-)compiler/org/eclipse/jdt/internal/compiler/problem/AbortCompilation.java (-2 / +2 lines)
Lines 60-66 Link Here
60
		if (this.problem.getSourceStart() != 0 || this.problem.getSourceEnd() != 0) return;
60
		if (this.problem.getSourceStart() != 0 || this.problem.getSourceEnd() != 0) return;
61
		this.problem.setSourceStart(invocationSite.sourceStart());
61
		this.problem.setSourceStart(invocationSite.sourceStart());
62
		this.problem.setSourceEnd(invocationSite.sourceEnd());
62
		this.problem.setSourceEnd(invocationSite.sourceEnd());
63
		this.problem.setSourceLineNumber(ProblemHandler.searchLineNumber(unitResult.lineSeparatorPositions, invocationSite.sourceStart()));
63
		this.problem.setSourceLineNumber(ProblemHandler.searchLineNumber(unitResult.getLineSeparatorPositions(), invocationSite.sourceStart()));
64
		this.compilationResult = unitResult;
64
		this.compilationResult = unitResult;
65
	}
65
	}
66
66
Lines 69-75 Link Here
69
		if (this.problem.getSourceStart() != 0 || this.problem.getSourceEnd() != 0) return;
69
		if (this.problem.getSourceStart() != 0 || this.problem.getSourceEnd() != 0) return;
70
		this.problem.setSourceStart(astNode.sourceStart());
70
		this.problem.setSourceStart(astNode.sourceStart());
71
		this.problem.setSourceEnd(astNode.sourceEnd());
71
		this.problem.setSourceEnd(astNode.sourceEnd());
72
		this.problem.setSourceLineNumber(ProblemHandler.searchLineNumber(unitResult.lineSeparatorPositions, astNode.sourceStart()));
72
		this.problem.setSourceLineNumber(ProblemHandler.searchLineNumber(unitResult.getLineSeparatorPositions(), astNode.sourceStart()));
73
		this.compilationResult = unitResult;
73
		this.compilationResult = unitResult;
74
	}
74
	}
75
}
75
}
(-)compiler/org/eclipse/jdt/internal/compiler/problem/ProblemHandler.java (-1 / +1 lines)
Lines 106-112 Link Here
106
			problemStartPosition, 
106
			problemStartPosition, 
107
			problemEndPosition, 
107
			problemEndPosition, 
108
			problemStartPosition >= 0
108
			problemStartPosition >= 0
109
				? searchLineNumber(unitResult.lineSeparatorPositions, problemStartPosition)
109
				? searchLineNumber(unitResult.getLineSeparatorPositions(), problemStartPosition)
110
				: 0);
110
				: 0);
111
	if (problem == null) return; // problem couldn't be created, ignore
111
	if (problem == null) return; // problem couldn't be created, ignore
112
	
112
	
(-)model/org/eclipse/jdt/internal/core/util/CodeSnippetParsingUtil.java (-1 / +1 lines)
Lines 44-50 Link Here
44
				System.arraycopy(compilationResultProblems, 0, (problems = new IProblem[problemsCount]), 0, problemsCount);
44
				System.arraycopy(compilationResultProblems, 0, (problems = new IProblem[problemsCount]), 0, problemsCount);
45
			}
45
			}
46
		}
46
		}
47
		return new RecordedParsingInformation(problems, compilationResult.lineSeparatorPositions, parser.getCommentsPositions());
47
		return new RecordedParsingInformation(problems, compilationResult.getLineSeparatorPositions(), parser.getCommentsPositions());
48
	}
48
	}
49
49
50
	public ASTNode[] parseClassBodyDeclarations(char[] source, Map settings, boolean recordParsingInformation) {
50
	public ASTNode[] parseClassBodyDeclarations(char[] source, Map settings, boolean recordParsingInformation) {
(-)model/org/eclipse/jdt/internal/compiler/SourceElementParser.java (-3 / +3 lines)
Lines 1301-1307 Link Here
1301
		CompilationResult compilationUnitResult = new CompilationResult(unit, 0, 0, this.options.maxProblemsPerUnit);
1301
		CompilationResult compilationUnitResult = new CompilationResult(unit, 0, 0, this.options.maxProblemsPerUnit);
1302
		CompilationUnitDeclaration parsedUnit = parse(unit, compilationUnitResult, start, end);
1302
		CompilationUnitDeclaration parsedUnit = parse(unit, compilationUnitResult, start, end);
1303
		if (scanner.recordLineSeparator) {
1303
		if (scanner.recordLineSeparator) {
1304
			requestor.acceptLineSeparatorPositions(compilationUnitResult.lineSeparatorPositions);
1304
			requestor.acceptLineSeparatorPositions(compilationUnitResult.getLineSeparatorPositions());
1305
		}
1305
		}
1306
		if (this.localDeclarationVisitor != null || fullParse){
1306
		if (this.localDeclarationVisitor != null || fullParse){
1307
			diet = false;
1307
			diet = false;
Lines 1331-1337 Link Here
1331
		CompilationResult compilationUnitResult = new CompilationResult(unit, 0, 0, this.options.maxProblemsPerUnit);
1331
		CompilationResult compilationUnitResult = new CompilationResult(unit, 0, 0, this.options.maxProblemsPerUnit);
1332
		CompilationUnitDeclaration parsedUnit = parse(unit, compilationUnitResult);
1332
		CompilationUnitDeclaration parsedUnit = parse(unit, compilationUnitResult);
1333
		if (scanner.recordLineSeparator) {
1333
		if (scanner.recordLineSeparator) {
1334
			requestor.acceptLineSeparatorPositions(compilationUnitResult.lineSeparatorPositions);
1334
			requestor.acceptLineSeparatorPositions(compilationUnitResult.getLineSeparatorPositions());
1335
		}
1335
		}
1336
		int initialStart = this.scanner.initialPosition;
1336
		int initialStart = this.scanner.initialPosition;
1337
		int initialEnd = this.scanner.eofPosition;
1337
		int initialEnd = this.scanner.eofPosition;
Lines 1401-1407 Link Here
1401
		// ignore this exception
1401
		// ignore this exception
1402
	} finally {
1402
	} finally {
1403
		if (scanner.recordLineSeparator) {
1403
		if (scanner.recordLineSeparator) {
1404
			requestor.acceptLineSeparatorPositions(compilationUnitResult.lineSeparatorPositions);
1404
			requestor.acceptLineSeparatorPositions(compilationUnitResult.getLineSeparatorPositions());
1405
		}
1405
		}
1406
		diet = old;
1406
		diet = old;
1407
	}
1407
	}
(-)compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java (-1 / +1 lines)
Lines 77-83 Link Here
77
	this.generateLineNumberAttributes = (classFile.produceDebugAttributes & CompilerOptions.Lines) != 0;
77
	this.generateLineNumberAttributes = (classFile.produceDebugAttributes & CompilerOptions.Lines) != 0;
78
	this.generateLocalVariableTableAttributes = (classFile.produceDebugAttributes & CompilerOptions.Vars) != 0;
78
	this.generateLocalVariableTableAttributes = (classFile.produceDebugAttributes & CompilerOptions.Vars) != 0;
79
	if (this.generateLineNumberAttributes) {
79
	if (this.generateLineNumberAttributes) {
80
		this.lineSeparatorPositions = classFile.referenceBinding.scope.referenceCompilationUnit().compilationResult.lineSeparatorPositions;
80
		this.lineSeparatorPositions = classFile.referenceBinding.scope.referenceCompilationUnit().compilationResult.getLineSeparatorPositions();
81
	}
81
	}
82
}
82
}
83
final public void aaload() {
83
final public void aaload() {
(-)compiler/org/eclipse/jdt/internal/compiler/CompilationResult.java (+6 lines)
Lines 45-50 Link Here
45
import org.eclipse.jdt.internal.compiler.problem.ProblemReporter;
45
import org.eclipse.jdt.internal.compiler.problem.ProblemReporter;
46
46
47
public class CompilationResult {
47
public class CompilationResult {
48
	private static final int[] EMPTY_LINE_ENDS = new int[0];
48
	
49
	
49
	public IProblem problems[];
50
	public IProblem problems[];
50
	public IProblem tasks[];
51
	public IProblem tasks[];
Lines 257-262 Link Here
257
		return errors;
258
		return errors;
258
	}
259
	}
259
	
260
	
261
262
	public int[] getLineSeparatorPositions() {
263
		return this.lineSeparatorPositions == null ? EMPTY_LINE_ENDS : this.lineSeparatorPositions;
264
	}
265
260
	/**
266
	/**
261
	 * Answer the problems (errors and warnings) encountered during compilation.
267
	 * Answer the problems (errors and warnings) encountered during compilation.
262
	 *
268
	 *
(-)compiler/org/eclipse/jdt/internal/compiler/ClassFile.java (-19 / +10 lines)
Lines 947-953 Link Here
947
		completeCodeAttributeForMissingAbstractProblemMethod(
947
		completeCodeAttributeForMissingAbstractProblemMethod(
948
			methodBinding,
948
			methodBinding,
949
			codeAttributeOffset,
949
			codeAttributeOffset,
950
			compilationResult.lineSeparatorPositions,
950
			compilationResult.getLineSeparatorPositions(),
951
			problem.getSourceLineNumber());
951
			problem.getSourceLineNumber());
952
			
952
			
953
		completeMethodInfo(methodAttributeOffset, attributeNumber);
953
		completeMethodInfo(methodAttributeOffset, attributeNumber);
Lines 1000-1010 Link Here
1000
		attributeNumber++; // code attribute
1000
		attributeNumber++; // code attribute
1001
		completeCodeAttributeForClinit(
1001
		completeCodeAttributeForClinit(
1002
			codeAttributeOffset,
1002
			codeAttributeOffset,
1003
			referenceBinding
1004
				.scope
1005
				.referenceCompilationUnit()
1006
				.compilationResult
1007
				.lineSeparatorPositions,
1008
			problemLine);
1003
			problemLine);
1009
		contents[attributeOffset++] = (byte) (attributeNumber >> 8);
1004
		contents[attributeOffset++] = (byte) (attributeNumber >> 8);
1010
		contents[attributeOffset] = (byte) attributeNumber;
1005
		contents[attributeOffset] = (byte) attributeNumber;
Lines 1067-1073 Link Here
1067
				.scope
1062
				.scope
1068
				.referenceCompilationUnit()
1063
				.referenceCompilationUnit()
1069
				.compilationResult
1064
				.compilationResult
1070
				.lineSeparatorPositions,
1065
				.getLineSeparatorPositions(),
1071
			problemLine);
1066
			problemLine);
1072
		completeMethodInfo(methodAttributeOffset, attributeNumber);
1067
		completeMethodInfo(methodAttributeOffset, attributeNumber);
1073
	}
1068
	}
Lines 1157-1163 Link Here
1157
				.scope
1152
				.scope
1158
				.referenceCompilationUnit()
1153
				.referenceCompilationUnit()
1159
				.compilationResult
1154
				.compilationResult
1160
				.lineSeparatorPositions,
1155
				.getLineSeparatorPositions(),
1161
			problemLine);
1156
			problemLine);
1162
		completeMethodInfo(methodAttributeOffset, attributeNumber);
1157
		completeMethodInfo(methodAttributeOffset, attributeNumber);
1163
	}
1158
	}
Lines 1270-1276 Link Here
1270
				.scope
1265
				.scope
1271
				.referenceCompilationUnit()
1266
				.referenceCompilationUnit()
1272
				.compilationResult
1267
				.compilationResult
1273
				.lineSeparatorPositions);
1268
				.getLineSeparatorPositions());
1274
		// update the number of attributes
1269
		// update the number of attributes
1275
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1270
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1276
		contents[methodAttributeOffset] = (byte) attributeNumber;
1271
		contents[methodAttributeOffset] = (byte) attributeNumber;
Lines 1300-1306 Link Here
1300
				.scope
1295
				.scope
1301
				.referenceCompilationUnit()
1296
				.referenceCompilationUnit()
1302
				.compilationResult
1297
				.compilationResult
1303
				.lineSeparatorPositions);
1298
				.getLineSeparatorPositions());
1304
		// update the number of attributes
1299
		// update the number of attributes
1305
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1300
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1306
		contents[methodAttributeOffset] = (byte) attributeNumber;			
1301
		contents[methodAttributeOffset] = (byte) attributeNumber;			
Lines 1325-1331 Link Here
1325
				.scope
1320
				.scope
1326
				.referenceCompilationUnit()
1321
				.referenceCompilationUnit()
1327
				.compilationResult
1322
				.compilationResult
1328
				.lineSeparatorPositions);
1323
				.getLineSeparatorPositions());
1329
		// update the number of attributes
1324
		// update the number of attributes
1330
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1325
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1331
		contents[methodAttributeOffset] = (byte) attributeNumber;
1326
		contents[methodAttributeOffset] = (byte) attributeNumber;
Lines 1354-1360 Link Here
1354
				.scope
1349
				.scope
1355
				.referenceCompilationUnit()
1350
				.referenceCompilationUnit()
1356
				.compilationResult
1351
				.compilationResult
1357
				.lineSeparatorPositions);
1352
				.getLineSeparatorPositions());
1358
		// update the number of attributes
1353
		// update the number of attributes
1359
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1354
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1360
		contents[methodAttributeOffset] = (byte) attributeNumber;		
1355
		contents[methodAttributeOffset] = (byte) attributeNumber;		
Lines 1385-1391 Link Here
1385
				.scope
1380
				.scope
1386
				.referenceCompilationUnit()
1381
				.referenceCompilationUnit()
1387
				.compilationResult
1382
				.compilationResult
1388
				.lineSeparatorPositions);
1383
				.getLineSeparatorPositions());
1389
		// update the number of attributes
1384
		// update the number of attributes
1390
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1385
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1391
		contents[methodAttributeOffset] = (byte) attributeNumber;
1386
		contents[methodAttributeOffset] = (byte) attributeNumber;
Lines 1416-1422 Link Here
1416
				.scope
1411
				.scope
1417
				.referenceCompilationUnit()
1412
				.referenceCompilationUnit()
1418
				.compilationResult
1413
				.compilationResult
1419
				.lineSeparatorPositions);
1414
				.getLineSeparatorPositions());
1420
		// update the number of attributes
1415
		// update the number of attributes
1421
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1416
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1422
		contents[methodAttributeOffset] = (byte) attributeNumber;
1417
		contents[methodAttributeOffset] = (byte) attributeNumber;
Lines 1446-1452 Link Here
1446
				.scope
1441
				.scope
1447
				.referenceCompilationUnit()
1442
				.referenceCompilationUnit()
1448
				.compilationResult
1443
				.compilationResult
1449
				.lineSeparatorPositions);
1444
				.getLineSeparatorPositions());
1450
		// update the number of attributes
1445
		// update the number of attributes
1451
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1446
		contents[methodAttributeOffset++] = (byte) (attributeNumber >> 8);
1452
		contents[methodAttributeOffset] = (byte) attributeNumber;
1447
		contents[methodAttributeOffset] = (byte) attributeNumber;
Lines 2048-2060 Link Here
2048
	 * - code_length
2043
	 * - code_length
2049
	 * - exception table
2044
	 * - exception table
2050
	 * - and debug attributes if necessary.
2045
	 * - and debug attributes if necessary.
2051
	 *
2052
	 * @param codeAttributeOffset <CODE>int</CODE>
2053
	 * @param startLineIndexes int[]
2054
	 */
2046
	 */
2055
	public void completeCodeAttributeForClinit(
2047
	public void completeCodeAttributeForClinit(
2056
		int codeAttributeOffset,
2048
		int codeAttributeOffset,
2057
		int[] startLineIndexes,
2058
		int problemLine) {
2049
		int problemLine) {
2059
		// reinitialize the contents with the byte modified by the code stream
2050
		// reinitialize the contents with the byte modified by the code stream
2060
		this.contents = codeStream.bCodeStream;
2051
		this.contents = codeStream.bCodeStream;

Return to bug 110270