From 2dd6c882a4d467cbb991177079a704d1c9f14cb8 Mon Sep 17 00:00:00 2001 From: Marc-Andre Laperle Date: Wed, 8 May 2013 23:41:40 -0400 Subject: [PATCH] Bug 396134 - NPE when extracting function inside a method Change-Id: Ia396d906196543249f0370f47d2b4f08782f9219 Reviewed-on: https://git.eclipse.org/r/12670 Reviewed-by: Marc-Andre Laperle IP-Clean: Marc-Andre Laperle Tested-by: Marc-Andre Laperle --- .../core/dom/parser/cpp/semantics/CPPVisitor.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java index 35c0385e09e..85457a2568c 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java @@ -1582,11 +1582,11 @@ public class CPPVisitor extends ASTQueries { return true; } if ((binding1 instanceof IIndexBinding) != (binding2 instanceof IIndexBinding) && index != null) { - if (binding1 instanceof IIndexBinding) { - binding2 = index.adaptBinding(binding2); - } else { - binding1 = index.adaptBinding(binding1); - } + // Even though we know one of them is an index binding, we need to adapt both because they might not come from an + // index with the same number of fragments. So one of them could be a composite binding and the other one not. + binding1 = index.adaptBinding(binding1); + binding2 = index.adaptBinding(binding2); + if (binding1 == null || binding2 == null) { return false; }