From b3b7eae722f6d564648c24d517adc379f5c02cb4 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Wed, 18 Oct 2006 12:09:23 +0000 Subject: [PATCH] Optimizes fast indexer for uninteresting resource deltas. --- .../core/pdom/indexer/fast/PDOMFastHandleDelta.java | 1 + .../core/pdom/indexer/fast/PDOMFastIndexerJob.java | 9 ++++++--- .../internal/core/pdom/indexer/fast/PDOMFastReindex.java | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastHandleDelta.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastHandleDelta.java index 0dc709d103f..d564c24fa2a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastHandleDelta.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastHandleDelta.java @@ -37,6 +37,7 @@ class PDOMFastHandleDelta extends PDOMFastIndexerJob { public void run(IProgressMonitor monitor) { try { + setupIndexAndReaderFactory(); long start = System.currentTimeMillis(); Iterator i = changed.iterator(); while (i.hasNext()) { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastIndexerJob.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastIndexerJob.java index d586067658f..613fabd8416 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastIndexerJob.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastIndexerJob.java @@ -40,14 +40,17 @@ import org.eclipse.core.runtime.IPath; abstract class PDOMFastIndexerJob extends PDOMIndexerTask implements IPDOMIndexerTask { protected final PDOMFastIndexer indexer; - protected final IWritableIndex index; - protected final IndexBasedCodeReaderFactory codeReaderFactory; + protected IWritableIndex index; + protected IndexBasedCodeReaderFactory codeReaderFactory; public PDOMFastIndexerJob(PDOMFastIndexer indexer) throws CoreException { this.indexer = indexer; + } + + protected void setupIndexAndReaderFactory() throws CoreException { this.index= ((IWritableIndexManager) CCorePlugin.getIndexManager()).getWritableIndex(indexer.getProject()); this.codeReaderFactory = new IndexBasedCodeReaderFactory(index); - } + } public IPDOMIndexer getIndexer() { return indexer; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastReindex.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastReindex.java index 596e6181fb0..8341d05080c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastReindex.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastReindex.java @@ -39,7 +39,7 @@ class PDOMFastReindex extends PDOMFastIndexerJob { public void run(final IProgressMonitor monitor) { try { long start = System.currentTimeMillis(); - + setupIndexAndReaderFactory(); clearIndex(index); fFilesToIndex--;