diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/CoreModel.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/CoreModel.java index 6f4efd23984..438256ffda1 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/CoreModel.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/CoreModel.java @@ -22,6 +22,7 @@ import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry; import org.eclipse.cdt.core.settings.model.ICProjectDescription; import org.eclipse.cdt.core.settings.model.ICProjectDescriptionListener; import org.eclipse.cdt.core.settings.model.ICProjectDescriptionManager; +import org.eclipse.cdt.core.settings.model.ICSettingEntry; import org.eclipse.cdt.core.settings.model.WriteAccessException; import org.eclipse.cdt.internal.core.model.APathEntry; import org.eclipse.cdt.internal.core.model.BatchOperation; @@ -1221,15 +1222,15 @@ public class CoreModel { /** * The method returns whether scanner information for a resource is empty or not. - *

- * Although this looks like IScannerInfoProvider method, eventually this interface - * will be deprecated and the service will be moved to CoreModel. - *

+ * If null is supplied the method returns true. * * @param resource * @since 3.0 */ public static boolean isScannerInformationEmpty(IResource resource) { + if (resource == null) { + return true; + } IProject project = resource.getProject(); CProjectDescriptionManager mngr = CProjectDescriptionManager.getInstance(); ICProjectDescription des = mngr.getProjectDescription(project, false); @@ -1245,19 +1246,19 @@ public class CoreModel { lSetting = null; } if(lSetting != null){ - ICLanguageSettingEntry[] entries = lSetting.getSettingEntries(ICLanguageSettingEntry.INCLUDE_PATH); + ICLanguageSettingEntry[] entries = lSetting.getSettingEntries(ICSettingEntry.INCLUDE_PATH); if(entries.length != 0) return false; - entries = lSetting.getSettingEntries(ICLanguageSettingEntry.MACRO); + entries = lSetting.getSettingEntries(ICSettingEntry.MACRO); if(entries.length != 0) return false; - entries = lSetting.getSettingEntries(ICLanguageSettingEntry.INCLUDE_FILE); + entries = lSetting.getSettingEntries(ICSettingEntry.INCLUDE_FILE); if(entries.length != 0) return false; - entries = lSetting.getSettingEntries(ICLanguageSettingEntry.MACRO_FILE); + entries = lSetting.getSettingEntries(ICSettingEntry.MACRO_FILE); if(entries.length != 0) return false; } diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/TranslationUnit.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/TranslationUnit.java index e4022028b8c..121b4ceeb3a 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/TranslationUnit.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/TranslationUnit.java @@ -828,14 +828,14 @@ public class TranslationUnit extends Openable implements ITranslationUnit { IResource resource = getResource(); ICProject project = getCProject(); IProject rproject = project.getProject(); + IResource infoResource = resource != null ? resource : rproject; - if (!force && CoreModel.isScannerInformationEmpty(resource)) { + if (!force && CoreModel.isScannerInformationEmpty(infoResource)) { return null; } IScannerInfoProvider provider = CCorePlugin.getDefault().getScannerInfoProvider(rproject); if (provider != null) { - IResource infoResource = resource != null ? resource : rproject; IScannerInfo scanInfo = provider.getScannerInformation(infoResource); if (scanInfo != null) return scanInfo; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/full/PDOMFullIndexerTask.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/full/PDOMFullIndexerTask.java index e53c97e2d0c..682f3eb225d 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/full/PDOMFullIndexerTask.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/full/PDOMFullIndexerTask.java @@ -17,6 +17,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -48,7 +49,7 @@ class PDOMFullIndexerTask extends PDOMIndexerTask { private final static Object SKIP= new Object(); private final static Object REQUIRED_IF_CONFIG_CHANGED= new Object(); - private List fChanged = new ArrayList(); + private List fChanged = new LinkedList(); private List fRemoved = new ArrayList(); private IWritableIndex fIndex = null; private Map filePathsToParse = new HashMap/**/();