From 5cdf8ec7ffe62a7bd7f0a1ee949d1d2d6bb1b42b Mon Sep 17 00:00:00 2001 From: David Inglis Date: Wed, 11 Aug 2004 17:39:57 +0000 Subject: [PATCH] check for invalid extension when gathering list --- .../eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java | 4 +++- .../src/org/eclipse/cdt/ui/dialogs/BinaryParserBlock.java | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java index 83dfeff7466..ac7f58a26cd 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/AbstractErrorParserBlock.java @@ -151,7 +151,9 @@ public abstract class AbstractErrorParserBlock extends AbstractCOptionPage { if (point != null) { IExtension[] exts = point.getExtensions(); for (int i = 0; i < exts.length; i++) { - mapParsers.put(exts[i].getUniqueIdentifier(), exts[i].getLabel()); + if (exts[i].getConfigurationElements().length > 0) { + mapParsers.put(exts[i].getUniqueIdentifier(), exts[i].getLabel()); + } } } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/BinaryParserBlock.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/BinaryParserBlock.java index 50072e31a21..d6569414e6c 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/BinaryParserBlock.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/BinaryParserBlock.java @@ -46,7 +46,6 @@ import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Group; import org.eclipse.ui.help.WorkbenchHelp; public class BinaryParserBlock extends AbstractBinaryParserPage { @@ -156,7 +155,7 @@ public class BinaryParserBlock extends AbstractBinaryParserPage { } private boolean isExtensionVisible(IExtension ext) { - IConfigurationElement[] elements = ext.getConfigurationElements(); + IConfigurationElement[] elements = ext.getConfigurationElements(); for (int i = 0; i < elements.length; i++) { IConfigurationElement[] children = elements[i].getChildren(ATTR_FILTER); for (int j = 0; j < children.length; j++) { @@ -168,8 +167,9 @@ public class BinaryParserBlock extends AbstractBinaryParserPage { } } } + return true; } - return true; + return false; // invalid extension definition (must have at least cextension elements) } public void createControl(Composite parent) { @@ -272,7 +272,7 @@ public class BinaryParserBlock extends AbstractBinaryParserPage { if (getContainer().getProject() != null) { try { - ICDescriptor desc = CCorePlugin.getDefault().getCProjectDescription(getContainer().getProject()); + ICDescriptor desc = CCorePlugin.getDefault().getCProjectDescription(getContainer().getProject(), true); ICExtensionReference[] ref = desc.get(CCorePlugin.BINARY_PARSER_UNIQ_ID); initialSelected = new ArrayList(ref.length); for (int i = 0; i < ref.length; i++) {