From c593b78e02aa62816581ea759ccf249bd5308075 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Mon, 31 Mar 2003 03:44:10 +0000 Subject: [PATCH] new method getDefaultBinaryParser() --- .../src/org/eclipse/cdt/core/CCorePlugin.java | 52 +++++++++++-------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java index 5ad900bbede..24c89f122ad 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java @@ -163,32 +163,40 @@ public class CCorePlugin extends Plugin { public IBinaryParser getBinaryParser(IProject project) throws CoreException { IBinaryParser parser = null; - try { - ICDescriptor cdesc = (ICDescriptor) getCProjectDescription(project); - ICExtensionReference[] cextensions = cdesc.get(BINARY_PARSER_UNIQ_ID); - if (cextensions.length > 0) - parser = (IBinaryParser) cextensions[0].createExtension(); - } catch (CoreException e) { + if (project != null) { + try { + ICDescriptor cdesc = (ICDescriptor) getCProjectDescription(project); + ICExtensionReference[] cextensions = cdesc.get(BINARY_PARSER_UNIQ_ID); + if (cextensions.length > 0) + parser = (IBinaryParser) cextensions[0].createExtension(); + } catch (CoreException e) { + } } if (parser == null) { - String id = getPluginPreferences().getDefaultString(PREF_BINARY_PARSER); - if (id == null || id.length() == 0) { - id = DEFAULT_BINARY_PARSER_UNIQ_ID; - } - IExtensionPoint extensionPoint = getDescriptor().getExtensionPoint(BINARY_PARSER_SIMPLE_ID); - IExtension extension = extensionPoint.getExtension(id); - if (extension != null) { - IConfigurationElement element[] = extension.getConfigurationElements(); - for (int i = 0; i < element.length; i++) { - if (element[i].getName().equalsIgnoreCase("cextension")) { - parser = (IBinaryParser) element[i].createExecutableExtension("run"); - break; - } + parser = getDefaultBinaryParser(); + } + return parser; + } + + public IBinaryParser getDefaultBinaryParser() throws CoreException { + IBinaryParser parser = null; + String id = getPluginPreferences().getDefaultString(PREF_BINARY_PARSER); + if (id == null || id.length() == 0) { + id = DEFAULT_BINARY_PARSER_UNIQ_ID; + } + IExtensionPoint extensionPoint = getDescriptor().getExtensionPoint(BINARY_PARSER_SIMPLE_ID); + IExtension extension = extensionPoint.getExtension(id); + if (extension != null) { + IConfigurationElement element[] = extension.getConfigurationElements(); + for (int i = 0; i < element.length; i++) { + if (element[i].getName().equalsIgnoreCase("cextension")) { + parser = (IBinaryParser) element[i].createExecutableExtension("run"); + break; } - } else { - IStatus s = new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, -1, "No Binary Format", null); - throw new CoreException(s); } + } else { + IStatus s = new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, -1, "No Binary Format", null); + throw new CoreException(s); } return parser; }