1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-06 17:26:01 +02:00

Modified updateCurrentDeltaAndIndex in DeltaProcessor.java to return whether

we need to traverse a delta's children.
This commit is contained in:
Bogdan Gheorghe 2004-05-20 19:51:23 +00:00
parent 0490a7b6ae
commit 47da7cb742
4 changed files with 27 additions and 10 deletions

View file

@ -1,3 +1,7 @@
2004-05-20 Bogdan Gheorghe
Modified updateCurrentDeltaAndIndex inDeltaProcessor.java to return whether
we need to traverse a delta's children.
2004-05-19 Alain Magloire
Partial Fix for PR 61341

View file

@ -1,3 +1,6 @@
2004-05-18 Bogdan Gheorghe
IndexAllProject - restored the save request.
2004-05-18 Bogdan Gheorghe
First go at putting in source folder indexing. Index All events will index
source folders (still need to put in includes indexing). DeltaProcessor only

View file

@ -98,7 +98,9 @@ public class IndexAllProject extends IndexRequest {
this.manager.request(new AddFolderToIndex(sourceRoot[i].getPath(), project, tempEntry.fullExclusionPatternChars(), this.manager));
}
}
// request to save index when all cus have been indexed
this.manager.request(new SaveIndex(this.indexPath, this.manager));
} catch (CoreException e) {
if (IndexManager.VERBOSE) {
JobManager.verbose("-> failed to index " + this.project + " because of the following exception:"); //$NON-NLS-1$ //$NON-NLS-2$

View file

@ -425,8 +425,11 @@ public class DeltaProcessor {
* resource by the sender of this method.
*/
protected void traverseDelta(ICElement parent, IResourceDelta delta) {
boolean updateChildren = true;
try {
ICElement current = updateCurrentDeltaAndIndex(delta);
IResource resource = delta.getResource();
ICElement current = createElement(resource);
updateChildren = updateCurrentDeltaAndIndex(delta);
if (current == null || current instanceof ISourceRoot ||
(current instanceof ICProject && !((ICProject)current).getProject().isOpen())) {
nonCResourcesChanged(parent, delta);
@ -435,9 +438,11 @@ public class DeltaProcessor {
}
} catch (CModelException e) {
}
IResourceDelta [] children = delta.getAffectedChildren();
for (int i = 0; i < children.length; i++) {
traverseDelta(parent, children[i]);
if (updateChildren){
IResourceDelta [] children = delta.getAffectedChildren();
for (int i = 0; i < children.length; i++) {
traverseDelta(parent, children[i]);
}
}
}
@ -480,7 +485,7 @@ public class DeltaProcessor {
* Returns whether the children of the given delta must be processed.
* @throws a CModelException if the delta doesn't correspond to a c element of the given type.
*/
private ICElement updateCurrentDeltaAndIndex(IResourceDelta delta) throws CModelException {
private boolean updateCurrentDeltaAndIndex(IResourceDelta delta) throws CModelException {
IResource resource = delta.getResource();
ICElement element = createElement(resource);
@ -491,14 +496,14 @@ public class DeltaProcessor {
updateIndexAddResource(element, delta);
elementAdded(element, delta);
}
break;
return true;
case IResourceDelta.REMOVED :
if (element != null) {
updateIndexRemoveResource(element, delta);
elementRemoved(element, delta);
}
break;
return true;
case IResourceDelta.CHANGED :
int flags = delta.getFlags();
@ -523,6 +528,8 @@ public class DeltaProcessor {
elementClosed(element, delta);
updateIndexRemoveResource(element, delta);
}
//Don't process children
return false;
}
}
if ((flags & IResourceDelta.DESCRIPTION) != 0) {
@ -541,13 +548,14 @@ public class DeltaProcessor {
elementRemoved(element, delta);
updateIndexRemoveResource(element, delta);
}
return false;
}
}
}
}
break;
return true;
}
return element;
return true;
}
protected void updateIndexAddResource(ICElement element, IResourceDelta delta) {