From 5113a88ad7beaf98a794fd4986ca01138305fe53 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Fri, 16 Apr 2004 03:30:13 +0000 Subject: [PATCH] Binary/ArchiveContainer was not clean up --- core/org.eclipse.cdt.core/ChangeLog | 7 +++++++ .../cdt/internal/core/model/CModelManager.java | 17 +++++++++-------- .../cdt/internal/core/model/DeltaProcessor.java | 2 ++ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index 854c0156b79..940f8d43817 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,10 @@ +2004-04-15 Alain Magloire + + BinaryContainer was not cleaned up. + + * model/org/eclipse/cdt/internal/core/model/CModelManager.java + * model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java + 2004-04-15 Alain Magloire Fix for PR 58481 diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java index de31e767a8d..9ec7c14c847 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java @@ -384,14 +384,15 @@ public class CModelManager implements IResourceChangeListener, ICDescriptorListe for (int i = 0; i < children.length; i++) { releaseCElement(children[i]); } - // Make sure any object specifics not part of the children be destroy - // For example the CProject needs to destroy the BinaryContainer and ArchiveContainer - if (celement instanceof CElement) { - try { - ((CElement)celement).closing(info); - } catch (CModelException e) { - // - } + } + + // Make sure any object specifics not part of the children be destroy + // For example the CProject needs to destroy the BinaryContainer and ArchiveContainer + if (celement instanceof CElement) { + try { + ((CElement)celement).closing(info); + } catch (CModelException e) { + // } } diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java index 79bfc678a9d..aa59ba1b6ff 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java @@ -126,9 +126,11 @@ public class DeltaProcessor { } // It is not a C resource if the parent is a Binary/ArchiveContainer + // But we have to release too. if (celement != null && resource.getType() == IResource.FILE) { ICElement parent = celement.getParent(); if (parent instanceof IArchiveContainer || parent instanceof IBinaryContainer) { + releaseCElement(celement); celement = null; } }