1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-21 23:33:57 +02:00

Fix for 45737 & 45835

This commit is contained in:
David Inglis 2003-11-06 19:48:07 +00:00
parent f9e17af94f
commit 7684f7c2c8
3 changed files with 26 additions and 9 deletions

View file

@ -1,3 +1,10 @@
2003-11-06 David Inglis
Fix for 45737 & 45835
* model/org/eclipse/cdt/internal/core/DeltaProcessor.java
* model/org/eclipse/cdt/internal/core/CModelManager.java
2003-10-29 David Inglis 2003-10-29 David Inglis
Fix for 45734 & 45736, Though this only addresses a small part on the later. Fix for 45734 & 45736, Though this only addresses a small part on the later.

View file

@ -373,6 +373,10 @@ public class CModelManager implements IResourceChangeListener {
// so we have to recall create again. // so we have to recall create again.
releaseCElement(celement); releaseCElement(celement);
celement = create(project); celement = create(project);
Parent parent = (Parent)celement.getParent();
CElementInfo info = (CElementInfo)parent.getElementInfo();
info.addChild(celement);
// Fired and ICElementDelta.PARSER_CHANGED // Fired and ICElementDelta.PARSER_CHANGED
CElementDelta delta = new CElementDelta(getCModel()); CElementDelta delta = new CElementDelta(getCModel());
delta.binaryParserChanged(celement); delta.binaryParserChanged(celement);

View file

@ -61,12 +61,15 @@ public class DeltaProcessor {
ICElement parent = manager.create(resource.getParent()); ICElement parent = manager.create(resource.getParent());
// Probably it was deleted, find it // Probably it was deleted, find it
if (parent instanceof IParent) { if (parent instanceof IParent) {
ICElement[] children = ((CElement)parent).getElementInfo().getChildren(); ICElement[] children;
for (int i = 0; i < children.length; i++) { if ( CModelManager.getDefault().peekAtInfo(parent) != null ) {
IResource res = children[i].getResource(); children = ((CElement)parent).getElementInfo().getChildren();
if (res != null && res.equals(resource)) { for (int i = 0; i < children.length; i++) {
celement = children[i]; IResource res = children[i].getResource();
break; if (res != null && res.equals(resource)) {
celement = children[i];
break;
}
} }
} }
// BUG 36424: // BUG 36424:
@ -380,9 +383,12 @@ public class DeltaProcessor {
elementDelta.addResourceDelta(delta); elementDelta.addResourceDelta(delta);
} }
if (parent instanceof CContainer) { if (parent instanceof CContainer) {
CElementInfo info = ((CContainer)parent).getElementInfo(); // if info not created yet no need to null NonCResources...
if (info instanceof CContainerInfo) { if (CModelManager.getDefault().peekAtInfo(parent) != null) {
((CContainerInfo)info).setNonCResources(null); CElementInfo info = ((CContainer)parent).getElementInfo();
if (info instanceof CContainerInfo) {
((CContainerInfo)info).setNonCResources(null);
}
} }
} }
} }