diff options
-rw-r--r-- | core/org.eclipse.cdt.core/ChangeLog | 5 | ||||
-rw-r--r-- | core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/PathEntryManager.java | 20 |
2 files changed, 17 insertions, 8 deletions
diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index 276eb59703e..36be4f5cc27 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,5 +1,10 @@ 2004-05-26 Alain Magloire + Do not generate CElementDelta for pathEntries + if none were presents previously. + +2004-05-26 Alain Magloire + Jumbo Patch from Chris Wiebe. Putting a starting skeleton for C Browsing. diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/PathEntryManager.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/PathEntryManager.java index f1afda40f50..17f0d3b6ff3 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/PathEntryManager.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/PathEntryManager.java @@ -420,12 +420,15 @@ public class PathEntryManager implements IPathEntryStoreListener, IElementChange if (affectedProject == null) { continue; // was filtered out } - IPathEntry[] newEntries = getResolvedPathEntries(affectedProject); - ICElementDelta[] deltas = generatePathEntryDeltas(affectedProject, oldResolvedEntries[i], newEntries); - if (deltas.length > 0) { - shouldFire = true; - for (int j = 0; j < deltas.length; j++) { - mgr.registerCModelDelta(deltas[j]); + // Only fire deltas if we had previous cache + if (oldResolvedEntries[i] != null) { + IPathEntry[] newEntries = getResolvedPathEntries(affectedProject); + ICElementDelta[] deltas = generatePathEntryDeltas(affectedProject, oldResolvedEntries[i], newEntries); + if (deltas.length > 0) { + shouldFire = true; + for (int j = 0; j < deltas.length; j++) { + mgr.registerCModelDelta(deltas[j]); + } } } } @@ -667,10 +670,11 @@ public class PathEntryManager implements IPathEntryStoreListener, IElementChange public ICElementDelta[] generatePathEntryDeltas(ICProject cproject, IPathEntry[] oldEntries, IPathEntry[] newEntries) { ArrayList list = new ArrayList(); - // Sanity checks + // if nothing was known before do not generate any deltas. if (oldEntries == null) { - oldEntries = NO_PATHENTRIES; + return new ICElementDelta[0]; } + // Sanity checks if (newEntries == null) { newEntries = NO_PATHENTRIES; } |