1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

Fix for indexer progress

This commit is contained in:
Markus Schorn 2007-03-22 15:43:00 +00:00
parent e8a5971083
commit 01274ff514
4 changed files with 14 additions and 11 deletions

View file

@ -118,10 +118,11 @@ public class PDOMRebuildTask implements IPDOMIndexerTask {
private synchronized void createDelegate(ICProject project, IProgressMonitor monitor) throws CoreException {
boolean allFiles= TRUE.equals(fIndexer.getProperty(IndexerPreferences.KEY_INDEX_ALL_FILES));
List list= new ArrayList();
TranslationUnitCollector collector= new TranslationUnitCollector(list, allFiles, monitor);
List sources= new ArrayList();
List headers= allFiles ? sources : null;
TranslationUnitCollector collector= new TranslationUnitCollector(sources, headers, allFiles, monitor);
project.accept(collector);
ITranslationUnit[] tus= (ITranslationUnit[]) list.toArray(new ITranslationUnit[list.size()]);
ITranslationUnit[] tus= (ITranslationUnit[]) sources.toArray(new ITranslationUnit[sources.size()]);
fDelegate= fIndexer.createTask(tus, NO_TUS, NO_TUS);
if (fDelegate instanceof PDOMIndexerTask) {
((PDOMIndexerTask) fDelegate).setCheckTimestamps(fCheckTimestamps);

View file

@ -123,7 +123,7 @@ public class PDOMResourceDeltaTask implements IPDOMIndexerTask {
}
private void collectSources(ICContainer container, Collection sources, IProgressMonitor pm) throws CoreException {
container.accept(new TranslationUnitCollector(sources, fAllFiles, pm));
container.accept(new TranslationUnitCollector(sources, sources, fAllFiles, pm));
}
public void run(IProgressMonitor monitor) {

View file

@ -71,7 +71,7 @@ public class PDOMUpdateTask implements IPDOMIndexerTask {
private synchronized void createDelegate(ICProject project, IProgressMonitor monitor) throws CoreException {
boolean allFiles= TRUE.equals(fIndexer.getProperty(IndexerPreferences.KEY_INDEX_ALL_FILES));
List list= new ArrayList();
TranslationUnitCollector collector= new TranslationUnitCollector(list, allFiles, monitor);
TranslationUnitCollector collector= new TranslationUnitCollector(list, list, allFiles, monitor);
project.accept(collector);
ITranslationUnit[] tus= (ITranslationUnit[]) list.toArray(new ITranslationUnit[list.size()]);
fDelegate= fIndexer.createTask(tus, NO_TUS, NO_TUS);

View file

@ -21,12 +21,14 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
final class TranslationUnitCollector implements ICElementVisitor {
private final Collection fTUs;
private final Collection fSources;
private final Collection fHeaders;
private final boolean fAllFiles;
private final IProgressMonitor fProgressMonitor;
public TranslationUnitCollector(Collection tus, boolean allFiles, IProgressMonitor pm) {
fTUs = tus;
public TranslationUnitCollector(Collection sources, Collection headers, boolean allFiles, IProgressMonitor pm) {
fSources= sources;
fHeaders= headers;
fAllFiles = allFiles;
fProgressMonitor= pm;
}
@ -40,11 +42,11 @@ final class TranslationUnitCollector implements ICElementVisitor {
ITranslationUnit tu = (ITranslationUnit)element;
if (tu.isSourceUnit()) {
if (fAllFiles || !CoreModel.isScannerInformationEmpty(tu.getResource())) {
fTUs.add(tu);
fSources.add(tu);
}
}
else if (tu.isHeaderUnit()) {
fTUs.add(tu);
else if (fHeaders != null && tu.isHeaderUnit()) {
fHeaders.add(tu);
}
return false;
case ICElement.C_CCONTAINER: