1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-14 04:25:21 +02:00

Fix for Bug 71115: Double Indexing

This commit is contained in:
Bogdan Gheorghe 2004-08-09 15:21:10 +00:00
parent d30e954584
commit f0ff087997
3 changed files with 28 additions and 15 deletions

View file

@ -1,3 +1,9 @@
2004-08-09 Bogdan Gheorghe
Fix for Bug 71115: Double Indexing
Added CContainer support to updateIndexAdd/RemoveResource
* model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java
2004-07-28 Tanya Wolff
Fix for PR 70161: Assembly untranslated in C++ File Types

View file

@ -539,9 +539,8 @@ public class IndexManager extends JobManager implements IIndexConstants {
/**
* Remove the content of the given source folder from the index.
*/
public void removeSourceFolderFromIndex(CProject cProject, IPath sourceFolder, char[][] exclusionPatterns) {
IProject project = cProject.getProject();
public void removeSourceFolderFromIndex(IProject project, IPath sourceFolder, char[][] exclusionPatterns) {
if( !isIndexEnabled( project ) )
return;

View file

@ -500,7 +500,7 @@ public class DeltaProcessor {
updateIndexAddResource(element, delta);
elementAdded(element, delta);
}
return true;
return false;
case IResourceDelta.REMOVED :
if (element != null) {
@ -534,7 +534,7 @@ public class DeltaProcessor {
}
elementOpened(element, delta);
updateIndexAddResource(element, delta);
return true;
return false;
}
elementClosed(element, delta);
updateIndexRemoveResource(element, delta);
@ -577,7 +577,11 @@ public class DeltaProcessor {
case ICElement.C_PROJECT :
this.indexManager.indexAll(element.getCProject().getProject());
break;
case ICElement.C_CCONTAINER:
indexManager.indexSourceFolder(element.getCProject().getProject(),element.getPath(),null);
break;
case ICElement.C_UNIT:
IFile file = (IFile) delta.getResource();
IProject filesProject = file.getProject();
@ -594,15 +598,19 @@ public class DeltaProcessor {
switch (element.getElementType()) {
case ICElement.C_PROJECT :
IPath fullPath = element.getCProject().getProject().getFullPath();
if( delta.getKind() == IResourceDelta.CHANGED )
indexManager.discardJobs(fullPath.segment(0));
indexManager.removeIndexFamily(fullPath);
// NB: Discarding index jobs belonging to this project was done during PRE_DELETE
break;
// NB: Update of index if project is opened, closed, or its c nature is added or removed
// is done in updateCurrentDeltaAndIndex
IPath fullPath = element.getCProject().getProject().getFullPath();
if( delta.getKind() == IResourceDelta.CHANGED )
indexManager.discardJobs(fullPath.segment(0));
indexManager.removeIndexFamily(fullPath);
// NB: Discarding index jobs belonging to this project was done during PRE_DELETE
break;
// NB: Update of index if project is opened, closed, or its c nature is added or removed
// is done in updateCurrentDeltaAndIndex
case ICElement.C_CCONTAINER:
indexManager.removeSourceFolderFromIndex(element.getCProject().getProject(),element.getPath(),null);
break;
case ICElement.C_UNIT:
IFile file = (IFile) delta.getResource();
indexManager.remove(file.getFullPath().toString(), file.getProject().getFullPath());