1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-02 22:05:44 +02:00

Bug 336396: fixed double processing of files on build

This commit is contained in:
Alena Laskavaia 2011-02-08 02:24:45 +00:00
parent c681894c31
commit 42fa511831

View file

@ -52,14 +52,14 @@ public class CodanBuilder extends IncrementalProjectBuilder implements
switch (delta.getKind()) { switch (delta.getKind()) {
case IResourceDelta.ADDED: case IResourceDelta.ADDED:
// handle added resource // handle added resource
processResource(resource, monitor); processResourceDelta(resource, monitor);
break; break;
case IResourceDelta.REMOVED: case IResourceDelta.REMOVED:
// handle removed resource // handle removed resource
break; break;
case IResourceDelta.CHANGED: case IResourceDelta.CHANGED:
// handle changed resource // handle changed resource
processResource(resource, monitor); processResourceDelta(resource, monitor);
break; break;
} }
// return true to continue visiting children. // return true to continue visiting children.
@ -91,11 +91,17 @@ public class CodanBuilder extends IncrementalProjectBuilder implements
} }
public void processResource(IResource resource, IProgressMonitor monitor) { public void processResource(IResource resource, IProgressMonitor monitor) {
processResource(resource, monitor, null, false); processResource(resource, monitor, null, false, true);
}
public void processResourceDelta(IResource resource,
IProgressMonitor monitor) {
processResource(resource, monitor, null, false, false);
} }
protected void processResource(IResource resource, protected void processResource(IResource resource,
IProgressMonitor monitor, Object model, boolean inEditor) { IProgressMonitor monitor, Object model, boolean inEditor,
boolean recursive) {
CheckersRegistry chegistry = CheckersRegistry.getInstance(); CheckersRegistry chegistry = CheckersRegistry.getInstance();
int checkers = chegistry.getCheckersSize(); int checkers = chegistry.getCheckersSize();
int memsize = 0; int memsize = 0;
@ -149,7 +155,7 @@ public class CodanBuilder extends IncrementalProjectBuilder implements
CodanCorePlugin.log(e); CodanCorePlugin.log(e);
} }
} }
if (resource instanceof IContainer) { if (resource instanceof IContainer && recursive) {
try { try {
IResource[] members = ((IContainer) resource).members(); IResource[] members = ((IContainer) resource).members();
for (int i = 0; i < members.length; i++) { for (int i = 0; i < members.length; i++) {
@ -190,6 +196,6 @@ public class CodanBuilder extends IncrementalProjectBuilder implements
IProgressMonitor monitor) { IProgressMonitor monitor) {
if (model == null) if (model == null)
return; return;
processResource(resource, monitor, model, true); processResource(resource, monitor, model, true, false);
} }
} }