From ccee647b445699a85592292950d6f9059e795944 Mon Sep 17 00:00:00 2001 From: Andrew Niefer Date: Tue, 19 Apr 2005 19:13:09 +0000 Subject: [PATCH] bug 91878: ArrayIndexOutOfBoundsException & ClassCastException --- .../cdt/internal/core/dom/parser/cpp/CPPVariable.java | 2 +- .../eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVariable.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVariable.java index b1b81e7bdc8..b28e00ce2a4 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVariable.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVariable.java @@ -118,7 +118,7 @@ public class CPPVariable implements ICPPVariable, ICPPInternalBinding { if( !( node instanceof IASTDeclarator ) ) return false; - IASTDeclarator dtor = (IASTDeclarator) name.getParent(); + IASTDeclarator dtor = (IASTDeclarator) node; while( dtor.getParent() instanceof IASTDeclarator ) dtor = (IASTDeclarator) dtor.getParent(); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java index 5ef2e83861b..573a9c67c32 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPVisitor.java @@ -982,7 +982,10 @@ public class CPPVisitor { } catch ( DOMException e ) { return PROCESS_CONTINUE; } - candidate = bs[ ++n ]; + if( bs == null || bs.length == 0 ) + candidate = null; + else + candidate = bs[ ++n ]; } else { candidate = potential; }