[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] fix for 69199
|
This patch prevents some NPEs from happening in the class browser. I
suggest this should be applied to both HEAD and CDT_2_0 branch.
-Chris
Index: src/org/eclipse/cdt/internal/ui/viewsupport/CElementLabels.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/viewsupport/CElementLabels.java,v
retrieving revision 1.3
diff -u -r1.3 CElementLabels.java
--- src/org/eclipse/cdt/internal/ui/viewsupport/CElementLabels.java 24 Jun 2004 19:29:33 -0000 1.3
+++ src/org/eclipse/cdt/internal/ui/viewsupport/CElementLabels.java 6 Jul 2004 15:22:49 -0000
@@ -326,8 +326,11 @@
//qualification
if( getFlag( flags, M_FULLY_QUALIFIED ) ){
- getTypeLabel( method.getParent(), T_FULLY_QUALIFIED | (flags & P_COMPRESSED), buf );
- buf.append( "::" ); //$NON-NLS-1$
+ ICElement parent = method.getParent();
+ if (parent != null && parent.exists()) {
+ getTypeLabel( parent, T_FULLY_QUALIFIED | (flags & P_COMPRESSED), buf );
+ buf.append( "::" ); //$NON-NLS-1$
+ }
}
buf.append( method.getElementName() );
@@ -455,9 +458,11 @@
public static void getTypeLabel(ICElement elem, int flags, StringBuffer buf) {
if (getFlag(flags, T_FULLY_QUALIFIED)) {
ISourceRoot root= CModelUtil.getSourceRoot(elem);
- getSourceRootLabel(root, (flags & P_COMPRESSED), buf);
- buf.append(root.getElementName());
- buf.append('.');
+ if (root != null) {
+ getSourceRootLabel(root, (flags & P_COMPRESSED), buf);
+ buf.append(root.getElementName());
+ buf.append('.');
+ }
}
String typeName= elem.getElementName();
Index: browser/org/eclipse/cdt/core/browser/TypeInfo.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/TypeInfo.java,v
retrieving revision 1.7
diff -u -r1.7 TypeInfo.java
--- browser/org/eclipse/cdt/core/browser/TypeInfo.java 21 Jun 2004 19:14:22 -0000 1.7
+++ browser/org/eclipse/cdt/core/browser/TypeInfo.java 6 Jul 2004 15:22:33 -0000
@@ -58,7 +58,10 @@
ITypeReference ref = getResolvedReference();
if (ref != null) {
ICElement[] elems = ref.getCElements();
- if (elems.length > 1) {
+ if (elems != null && elems.length > 0) {
+ if (elems.length == 1)
+ return elems[0];
+
for (int i = 0; i < elems.length; ++i) {
ICElement elem = elems[i];
if (elem.getElementType() == fElementType && elem.getElementName().equals(getName())) {
@@ -66,8 +69,6 @@
return elem;
}
}
- } else if (elems.length == 1) {
- return elems[0];
}
}
return null;