mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-05 16:56:04 +02:00
Bug 464008: CNavigatorContentProvider creates new CProject instance on every invocation
This sometimes leads to issues with Binaries node. Change-Id: I8f5159c14a2e8056e229582c57878f3d35342d3e Signed-off-by: Johann Draschwandtner <johann.draschwandtner@windriver.com>
This commit is contained in:
parent
a740576b78
commit
b49fa67882
1 changed files with 9 additions and 1 deletions
|
@ -47,6 +47,9 @@ import org.eclipse.cdt.core.model.IParent;
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
import org.eclipse.cdt.ui.CUIPlugin;
|
||||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.internal.core.model.CModel;
|
||||||
|
import org.eclipse.cdt.internal.core.model.CModelManager;
|
||||||
|
|
||||||
import org.eclipse.cdt.internal.ui.cview.CViewContentProvider;
|
import org.eclipse.cdt.internal.ui.cview.CViewContentProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -233,7 +236,12 @@ public class CNavigatorContentProvider extends CViewContentProvider implements I
|
||||||
if (element instanceof IWorkspaceRoot) {
|
if (element instanceof IWorkspaceRoot) {
|
||||||
return ((IWorkspaceRoot)element).getProjects();
|
return ((IWorkspaceRoot)element).getProjects();
|
||||||
} else if (element instanceof IProject) {
|
} else if (element instanceof IProject) {
|
||||||
return super.getChildren(CoreModel.getDefault().create((IProject)element));
|
CModel cModel = CModelManager.getDefault().getCModel();
|
||||||
|
ICProject prj = cModel.findCProject((IProject)element);
|
||||||
|
if(prj == null) {
|
||||||
|
prj = CoreModel.getDefault().create((IProject)element);
|
||||||
|
}
|
||||||
|
return super.getChildren(prj);
|
||||||
} else {
|
} else {
|
||||||
children = super.getChildren(element);
|
children = super.getChildren(element);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue