From de80e83c993f563a5037c79722c3cd9b8ae1bbb1 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Tue, 13 Feb 2007 18:41:39 +0000 Subject: [PATCH] Patch for Ed Swartz (Nokia) Bug 172237 - Try all declNames until we find one that has a valid file location. --- .../ui/search/actions/OpenDeclarationsAction.java | 8 +++++--- .../internal/ui/search/actions/OpenDefinitionAction.java | 6 ++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java index d8fe3101dac..add33e23c12 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java @@ -8,6 +8,7 @@ * Contributors: * IBM Corporation - initial API and implementation * Markus Schorn (Wind River Systems) + * Ed Swartz (Nokia) *******************************************************************************/ package org.eclipse.cdt.internal.ui.search.actions; @@ -96,9 +97,9 @@ public class OpenDeclarationsAction extends SelectionParseAction { findDefinitions(index, ast, binding) : findDeclarations(index, ast, binding); } - - if (declNames.length > 0) { - IASTFileLocation fileloc = declNames[0].getFileLocation(); + + for (int i = 0; i < declNames.length; i++) { + IASTFileLocation fileloc = declNames[i].getFileLocation(); if (fileloc != null) { final IPath path = new Path(fileloc.getFileName()); final int offset = fileloc.getNodeOffset(); @@ -113,6 +114,7 @@ public class OpenDeclarationsAction extends SelectionParseAction { } } }); + break; } } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDefinitionAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDefinitionAction.java index ec1af87c40c..145828f393b 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDefinitionAction.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDefinitionAction.java @@ -8,6 +8,7 @@ * Contributors: * IBM Corporation - initial API and implementation * Markus Schorn (Wind River Systems) + * Ed Swartz (Nokia) *******************************************************************************/ package org.eclipse.cdt.internal.ui.search.actions; @@ -88,8 +89,8 @@ public class OpenDefinitionAction extends SelectionParseAction { IBinding binding = searchName.resolveBinding(); if (binding != null) { final IName[] declNames = ast.getDefinitions(binding); - if (declNames.length > 0) { - IASTFileLocation fileloc = declNames[0].getFileLocation(); + for (int i = 0; i < declNames.length; i++) { + IASTFileLocation fileloc = declNames[i].getFileLocation(); // no source location - TODO spit out an error in the status bar if (fileloc != null) { final IPath path = new Path(fileloc.getFileName()); @@ -105,6 +106,7 @@ public class OpenDefinitionAction extends SelectionParseAction { } } }); + break; } } }