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

Fix the CModelOperation

This commit is contained in:
Alain Magloire 2004-04-30 02:04:44 +00:00
parent 3303fed1ef
commit 69a8947522
2 changed files with 4 additions and 2 deletions

View file

@ -80,7 +80,7 @@ public class CModelManager implements IResourceChangeListener, ICDescriptorListe
* Queue of deltas created explicily by the C Model that * Queue of deltas created explicily by the C Model that
* have yet to be fired. * have yet to be fired.
*/ */
private ArrayList fCModelDeltas = new ArrayList(); ArrayList fCModelDeltas = new ArrayList();
/** /**
* Queue of reconcile deltas on working copies that have yet to be fired. * Queue of reconcile deltas on working copies that have yet to be fired.

View file

@ -525,13 +525,15 @@ public abstract class CModelOperation implements IWorkspaceRunnable, IProgressMo
*/ */
public void run(IProgressMonitor monitor) throws CoreException { public void run(IProgressMonitor monitor) throws CoreException {
CModelManager manager= CModelManager.getDefault(); CModelManager manager= CModelManager.getDefault();
int previousDeltaCount = manager.fCModelDeltas.size();
try { try {
fMonitor = monitor; fMonitor = monitor;
execute(); execute();
} finally { } finally {
registerDeltas(); registerDeltas();
// Fire if we change somethings // Fire if we change somethings
if (!hasModifiedResource() || manager.reconcileDeltas.isEmpty()) { if ((manager.fCModelDeltas.size() > previousDeltaCount || !manager.reconcileDeltas.isEmpty())
&& !this.hasModifiedResource()) {
manager.fire(ElementChangedEvent.POST_CHANGE); manager.fire(ElementChangedEvent.POST_CHANGE);
} }
} }