mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
fix broken buffer cache, 73378
This commit is contained in:
parent
85245150d4
commit
3831dd4b2e
1 changed files with 11 additions and 9 deletions
|
@ -84,7 +84,7 @@ public class Scanner2 implements IScanner, IScannerData {
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
private ExpressionEvaluator expressionEvaluator = new ExpressionEvaluator();
|
private ExpressionEvaluator expressionEvaluator = new ExpressionEvaluator();
|
||||||
private final Map fileCache = new HashMap(100);
|
private final CharArrayObjectMap fileCache = new CharArrayObjectMap(100);
|
||||||
|
|
||||||
// The context stack
|
// The context stack
|
||||||
private static final int bufferInitialSize = 8;
|
private static final int bufferInitialSize = 8;
|
||||||
|
@ -1486,12 +1486,13 @@ public class Scanner2 implements IScanner, IScannerData {
|
||||||
{
|
{
|
||||||
String absolutePath = parentFile.getAbsolutePath();
|
String absolutePath = parentFile.getAbsolutePath();
|
||||||
String finalPath = ScannerUtility.createReconciledPath( absolutePath, filename );
|
String finalPath = ScannerUtility.createReconciledPath( absolutePath, filename );
|
||||||
reader = (CodeReader)fileCache.get(finalPath);
|
reader = (CodeReader)fileCache.get(finalPath.toCharArray());
|
||||||
if (reader == null)
|
if (reader == null){
|
||||||
reader = ScannerUtility.createReaderDuple( finalPath, requestor, getWorkingCopies() );
|
reader = ScannerUtility.createReaderDuple( finalPath, requestor, getWorkingCopies() );
|
||||||
if (reader != null) {
|
if (reader != null && reader.filename != null)
|
||||||
if (reader.filename != null)
|
|
||||||
fileCache.put(reader.filename, reader);
|
fileCache.put(reader.filename, reader);
|
||||||
|
}
|
||||||
|
if (reader != null) {
|
||||||
if (dlog != null) dlog.println("#include \"" + finalPath + "\""); //$NON-NLS-1$ //$NON-NLS-2$
|
if (dlog != null) dlog.println("#include \"" + finalPath + "\""); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
IASTInclusion inclusion = getASTFactory().createInclusion( fileNameArray, reader.filename, local, startOffset, startingLineNumber, nameOffset, nameEndOffset, nameLine, endOffset, endLine, getCurrentFilename() );
|
IASTInclusion inclusion = getASTFactory().createInclusion( fileNameArray, reader.filename, local, startOffset, startingLineNumber, nameOffset, nameEndOffset, nameLine, endOffset, endLine, getCurrentFilename() );
|
||||||
pushContext(reader.buffer, new InclusionData( reader, inclusion ));
|
pushContext(reader.buffer, new InclusionData( reader, inclusion ));
|
||||||
|
@ -1513,12 +1514,13 @@ public class Scanner2 implements IScanner, IScannerData {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
reader = (CodeReader)fileCache.get(finalPath);
|
reader = (CodeReader)fileCache.get(finalPath.toCharArray());
|
||||||
if (reader == null)
|
if (reader == null){
|
||||||
reader = ScannerUtility.createReaderDuple( finalPath, requestor, getWorkingCopies() );
|
reader = ScannerUtility.createReaderDuple( finalPath, requestor, getWorkingCopies() );
|
||||||
if (reader != null) {
|
if (reader != null && reader.filename != null)
|
||||||
if (reader.filename != null)
|
|
||||||
fileCache.put(reader.filename, reader);
|
fileCache.put(reader.filename, reader);
|
||||||
|
}
|
||||||
|
if (reader != null) {
|
||||||
if (dlog != null) dlog.println("#include <" + finalPath + ">"); //$NON-NLS-1$ //$NON-NLS-2$
|
if (dlog != null) dlog.println("#include <" + finalPath + ">"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||||
IASTInclusion inclusion = getASTFactory().createInclusion( fileNameArray, reader.filename, local, startOffset, startingLineNumber, nameOffset, nameEndOffset, nameLine, endOffset, endLine, getCurrentFilename() );
|
IASTInclusion inclusion = getASTFactory().createInclusion( fileNameArray, reader.filename, local, startOffset, startingLineNumber, nameOffset, nameEndOffset, nameLine, endOffset, endLine, getCurrentFilename() );
|
||||||
pushContext(reader.buffer, new InclusionData( reader, inclusion ));
|
pushContext(reader.buffer, new InclusionData( reader, inclusion ));
|
||||||
|
|
Loading…
Add table
Reference in a new issue