1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-09-10 12:03:16 +02:00

Bug 309096: NPE in pointer to member type.

This commit is contained in:
Markus Schorn 2010-04-30 09:54:46 +00:00
parent d6fd606c63
commit e734801e92

View file

@ -68,18 +68,23 @@ public class CPPPointerToMemberType extends CPPPointerType implements ICPPPointe
* @see org.eclipse.cdt.core.dom.ast.cpp.ICPPPointerToMemberType#getMemberOfClass()
*/
public IType getMemberOfClass() {
if (classType == null) {
if (classType == null) {
IASTName name;
IBinding binding= null;
ICPPASTPointerToMember pm = operator;
IASTName name = pm.getName();
if (name instanceof ICPPASTQualifiedName) {
IASTName[] ns = ((ICPPASTQualifiedName) name).getNames();
if (ns.length > 1)
name = ns[ns.length - 2];
else
name = ns[ns.length - 1];
if (pm == null) {
name= new CPPASTName();
} else {
name = pm.getName();
if (name instanceof ICPPASTQualifiedName) {
IASTName[] ns = ((ICPPASTQualifiedName) name).getNames();
if (ns.length > 1)
name = ns[ns.length - 2];
else
name = ns[ns.length - 1];
}
binding = name.resolvePreBinding();
}
IBinding binding = name.resolvePreBinding();
if (binding instanceof IType) {
classType = (IType) binding;
} else {