From efd20f87dbf9fe66972a49fc7e2f573f69c6a76d Mon Sep 17 00:00:00 2001 From: Thomas Fletcher Date: Thu, 17 Aug 2006 21:02:05 +0000 Subject: [PATCH] Avoid probing special or empty files. 149428 --- core/org.eclipse.cdt.core/ChangeLog | 4 ++++ .../eclipse/cdt/internal/core/model/CModelManager.java | 9 ++++++++- .../org/eclipse/cdt/core/parser/util/HashTable.java | 6 +++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index a9ce3c57e4b..5cc0acc1beb 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,7 @@ +2006-08-17 Thomas Fletcher + PR 149428 modified from James Blackburn + * utils/org/eclipse/cdt/internal/core/model/CModelManager.java + 2006-01-26 Mikhail Khodjaiants Bug 102043: Console Output Does Not Appear When Launching An Application. * utils/org/eclipse/cdt/utils/spawner/Spawner.java diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java index 12614969a5c..e4a359c29bd 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java @@ -7,6 +7,7 @@ * * Contributors: * QNX Software Systems - Initial API and implementation + * James Blackburn - Modified patch for 149428 *******************************************************************************/ package org.eclipse.cdt.internal.core.model; @@ -48,7 +49,6 @@ import org.eclipse.cdt.core.model.IParent; import org.eclipse.cdt.core.model.ISourceRoot; import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.core.model.IWorkingCopy; -import org.eclipse.cdt.internal.core.pdom.PDOMManager; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; @@ -560,8 +560,15 @@ public class CModelManager implements IResourceChangeListener, ICDescriptorListe } public IBinaryFile createBinaryFile(IFile file) { + //Avoid name special devices, empty files and the like + File f = new File(file.getLocationURI()); + if (!f.isFile() || f.length() == 0) { + return null; + } + BinaryParserConfig[] parsers = getBinaryParser(file.getProject()); int hints = 0; + for (int i = 0; i < parsers.length; i++) { IBinaryParser parser = null; try { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/HashTable.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/HashTable.java index f4e47f30065..ee4e4c1dacc 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/HashTable.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/util/HashTable.java @@ -127,8 +127,12 @@ public class HashTable implements Cloneable{ } else { // need to link int j = hashTable[hash] - 1; - while (nextTable[j] != 0) + while (nextTable[j] != 0) { +// if(nextTable[j] - 1 == j) { +// break; +// } j = nextTable[j] - 1; + } nextTable[j] = i + 1; } }