From 2e3f7eca0e5a2b1c7f843d58a565e1e9406d1538 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Wed, 14 Feb 2007 09:00:27 +0000 Subject: [PATCH] Follow up for 169666 (composite bindings), fix adaptBinding for static functions/variables --- .../core/index/composite/CompositeIndexBinding.java | 5 ++++- .../parser/org/eclipse/cdt/internal/core/pdom/PDOM.java | 8 +++----- .../eclipse/cdt/internal/core/pdom/dom/PDOMBinding.java | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/CompositeIndexBinding.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/CompositeIndexBinding.java index c3cbbbf5181..24162814ad0 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/CompositeIndexBinding.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/index/composite/CompositeIndexBinding.java @@ -7,6 +7,7 @@ * * Contributors: * Andrew Ferguson (Symbian) - Initial implementation + * Markus Schorn (Wind River Systems) *******************************************************************************/ package org.eclipse.cdt.internal.core.index.composite; @@ -57,7 +58,9 @@ public abstract class CompositeIndexBinding implements IIndexBinding { } public Object getAdapter(Class adapter) { - fail(); + if (adapter.isInstance(rbinding)) { + return rbinding; + } return null; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java index 8d0234667bf..78718b7efe2 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOM.java @@ -522,11 +522,9 @@ public class PDOM extends PlatformObject implements IIndexFragment, IPDOM { } public IIndexFragmentBinding adaptBinding(IBinding binding) throws CoreException { - if (binding instanceof PDOMBinding) { - PDOMBinding pdomBinding= (PDOMBinding) binding; - if (pdomBinding.getPDOM() == this) { - return pdomBinding; - } + PDOMBinding pdomBinding= (PDOMBinding) binding.getAdapter(PDOMBinding.class); + if (pdomBinding != null && pdomBinding.getPDOM() == this) { + return pdomBinding; } PDOMLinkage linkage= adaptLinkage(binding.getLinkage()); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMBinding.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMBinding.java index 8e4cbce684a..3c9e3362ed7 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMBinding.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/PDOMBinding.java @@ -49,10 +49,10 @@ public abstract class PDOMBinding extends PDOMNamedNode implements IIndexFragmen } public Object getAdapter(Class adapter) { - if (adapter == PDOMBinding.class) + if (adapter.isAssignableFrom(PDOMBinding.class)) return this; - else - return null; + + return null; } /**