From 5945dd5813168c1af6b7fff2b3e0081d53cf746c Mon Sep 17 00:00:00 2001 From: Chris Recoskie Date: Mon, 15 Dec 2008 15:57:45 +0000 Subject: [PATCH] RESOLVED - bug 258823: AbstractIndexerTask.runTask() breaks standalone indexer https://bugs.eclipse.org/bugs/show_bug.cgi?id=258823 --- .../core/indexer/StandaloneIndexerTask.java | 13 ++++++++++++- .../cdt/internal/core/pdom/AbstractIndexerTask.java | 9 ++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/indexer/StandaloneIndexerTask.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/indexer/StandaloneIndexerTask.java index 0ce353b421f..36938fffe9c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/indexer/StandaloneIndexerTask.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/indexer/StandaloneIndexerTask.java @@ -17,6 +17,7 @@ import java.text.NumberFormat; import java.util.Collection; import java.util.Iterator; +import org.eclipse.cdt.core.dom.ILinkage; import org.eclipse.cdt.core.model.AbstractLanguage; import org.eclipse.cdt.core.model.ILanguage; import org.eclipse.cdt.core.parser.IParserLogService; @@ -44,6 +45,10 @@ public abstract class StandaloneIndexerTask extends AbstractIndexerTask { protected StandaloneIndexer fIndexer; + public static final int[] IDS_FOR_LINKAGES_TO_INDEX = { + ILinkage.CPP_LINKAGE_ID, ILinkage.C_LINKAGE_ID, ILinkage.FORTRAN_LINKAGE_ID + }; + protected StandaloneIndexerTask(StandaloneIndexer indexer, Collection added, Collection changed, Collection removed, boolean isFast) { super(concat(added, changed), removed.toArray(), new StandaloneIndexerInputAdapter(indexer), isFast); fIndexer= indexer; @@ -234,5 +239,11 @@ public abstract class StandaloneIndexerTask extends AbstractIndexerTask { return super.createDefaultScannerConfig(linkageID); } - + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask#getLinkagesToParse() + */ + @Override + protected int[] getLinkagesToParse() { + return IDS_FOR_LINKAGES_TO_INDEX; + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java index 208528df183..3cedb8518dc 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/AbstractIndexerTask.java @@ -237,7 +237,7 @@ public abstract class AbstractIndexerTask extends PDOMWriter { removeFilesInIndex(fFilesToRemove, ifilesToRemove, monitor); parseFilesUpFront(monitor); - for (int linkageID : PDOMManager.IDS_FOR_LINKAGES_TO_INDEX) { + for (int linkageID : getLinkagesToParse()) { parseLinkage(linkageID, files, monitor); } } finally { @@ -820,4 +820,11 @@ public abstract class AbstractIndexerTask extends PDOMWriter { protected IStatus createStatus(String msg) { return CCorePlugin.createStatus(msg); } + + /** + * @return array of linkage IDs that should be parsed + */ + protected int[] getLinkagesToParse() { + return PDOMManager.IDS_FOR_LINKAGES_TO_INDEX; + } } \ No newline at end of file