1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-23 00:45:28 +02:00

2005-01-19 Alain Magloire

PR 83151
	* model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java
This commit is contained in:
Alain Magloire 2005-01-19 19:41:37 +00:00
parent a53757cca0
commit 8006bc409b
2 changed files with 16 additions and 1 deletions

View file

@ -1,3 +1,7 @@
2005-01-19 Alain Magloire
PR 83151
* model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java
2005-01-18 David Inglis
Fixed bug #82705

View file

@ -7,7 +7,9 @@ package org.eclipse.cdt.internal.core.model;
import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.IArchive;
import org.eclipse.cdt.core.model.IArchiveContainer;
import org.eclipse.cdt.core.model.IBinary;
import org.eclipse.cdt.core.model.IBinaryContainer;
import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.core.model.ICElementDelta;
@ -312,7 +314,16 @@ public class DeltaProcessor {
* </ul>
*/
protected void elementChanged(ICElement element, IResourceDelta delta) {
if (element instanceof Openable) {
// For Binary/Archive We can not call close() to the work
// closing will remove the element from the {Binary,Archive}Container
// We nee to clear the cache explicitely
if (element instanceof IBinary || element instanceof IArchive) {
CModelManager factory = CModelManager.getDefault();
CElementInfo pinfo = (CElementInfo)factory.peekAtInfo(element);
if (pinfo != null) {
factory.removeInfo(element);
}
} else if (element instanceof Openable) {
close((Openable)element);
}
fCurrentDelta.changed(element, ICElementDelta.F_CONTENT);