This patch adds a layer of separation between the indexer and the parser by running the parser in its own thread. This allows the indexer to finish all jobs regardless of the individual parser outcomes. Also fixed a potential EOF bug while reading stored indexes.
for https://bugs.eclipse.org/bugs/show_bug.cgi?id=50821
The consequences of not applying it is that the scanner's error handling
strategy causes an out-of-memory error to happen on a unterminated
character literal when CModelBuilder kicks in (i.e. on save or reconcile).
The problem was that binaryParser scheme was
a perfomance problem affecting a lot of people
when projects were medium/big size. The IBinaryParser
was extended to allow one more method isbinary()
so that will let the BinaryParser open() the file
only once instead of multiple time like it did before.
Cherrypick from master 2003-11-18 16:20:49 UTC Alain Magloire <alain@qnx.com> 'Attempt to address performance problem in the IBinaryParser':
core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/coff/parser/ARMember.java
core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/coff/parser/BinaryArchive.java
core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/coff/parser/BinaryObject.java
core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/coff/parser/PEParser.java
core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/coff/parser/Symbol.java
core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/elf/parser/ElfParser.java
debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/CBreakpointManager.java
debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/sourcelookup/SourceUtils.java
Fixed Bug 44838 : exception when resolving parameter references in a constructor
Fixed Bug 46165 : fields referenced in constructor chains are not called back upon
Fixed Bug 45551 : Macro replacement in #include <file.h> directives
TESTS
Added CompleteParseASTTest::testBug44838().
Added CompleteParseASTTest::testBug46165().
Added ScannerTestCase::testBug45551().
Removed warnings from parser source tree.
Removed preliminary task tags support to clean up parser interfaces and implementation.
Added preliminary IProblem support to
UI
Updated parser clients to use new IProblem strategy.
TESTS
Updated parser clients to use new IProblem strategy.