1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-09 10:05:24 +02:00

[174299] changes to use findItems() where possible instead of recursive methods.

This commit is contained in:
David McKnight 2007-03-26 20:32:15 +00:00
parent 5c0f8d20e5
commit 41591dc0dc

View file

@ -3778,7 +3778,7 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
protected Widget internalFindReferencedItem(Widget parent, Object element, int searchLimit) { protected Widget internalFindReferencedItem(Widget parent, Object element, int searchLimit) {
previousItem = null; previousItem = null;
searchDepth = 0; searchDepth = 0;
//System.out.println("recursiveInternalFindReferencedItem"); System.out.println("recursiveInternalFindReferencedItem");
return recursiveInternalFindReferencedItem(parent, element, searchLimit); return recursiveInternalFindReferencedItem(parent, element, searchLimit);
} }
@ -3812,7 +3812,6 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
Item[] items = getChildren(parent); Item[] items = getChildren(parent);
for (int i = 0; (i < items.length); i++) for (int i = 0; (i < items.length); i++)
{ {
//System.out.println("recursiveInternalFindReferencedItem");
Widget o = recursiveInternalFindReferencedItem(items[i], element, searchLimit); Widget o = recursiveInternalFindReferencedItem(items[i], element, searchLimit);
if (o != null) return o; if (o != null) return o;
searchDepth = oldDepth; searchDepth = oldDepth;
@ -3875,10 +3874,8 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
match = internalFindFirstRemoteItemReference(remoteObjectName, null, subsystem); match = internalFindFirstRemoteItemReference(remoteObjectName, null, subsystem);
else { else {
//System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)");
//recursiveFindAllRemoteItemReferences(parentItem, remoteObjectName, null, subsystem, matches); //recursiveFindAllRemoteItemReferences(parentItem, remoteObjectName, null, subsystem, matches);
match = recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, null, subsystem); match = recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, null, subsystem);
if (debugRemote) System.out.println("Returning " + match + " from findFirstRemoteItemReference(1,2,3)"); //$NON-NLS-1$ //$NON-NLS-2$
} }
//if (matches.size() > 0) //if (matches.size() > 0)
// return (Item)matches.elementAt(0); // return (Item)matches.elementAt(0);
@ -3905,9 +3902,8 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
match = internalFindFirstRemoteItemReference(remoteObjectName, remoteObject, subsystem); match = internalFindFirstRemoteItemReference(remoteObjectName, remoteObject, subsystem);
else { else {
//recursiveFindAllRemoteItemReferences(parentItem, remoteObjectName, remoteObject, subsystem, matches); //recursiveFindAllRemoteItemReferences(parentItem, remoteObjectName, remoteObject, subsystem, matches);
//System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)"); System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)");
match = recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem); match = recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem);
if (debugRemote) System.out.println("Returning " + match + " from findFirstRemoteItemReference(1,2)"); //$NON-NLS-1$ //$NON-NLS-2$
} }
//if (matches.size() > 0) //if (matches.size() > 0)
@ -3934,20 +3930,29 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
if (element instanceof String) if (element instanceof String)
searchString = (String) element; searchString = (String) element;
else { else {
if (elementObject == null) elementObject = element; if (elementObject == null)
elementObject = element;
ISystemViewElementAdapter adapter = getViewAdapter(element); ISystemViewElementAdapter adapter = getViewAdapter(element);
if (adapter == null) return matches; if (adapter == null)
return matches;
subsystem = adapter.getSubSystem(element); subsystem = adapter.getSubSystem(element);
searchString = adapter.getAbsoluteName(element); searchString = adapter.getAbsoluteName(element);
} }
Tree tree = getTree(); Tree tree = getTree();
Item[] roots = tree.getItems(); Item[] roots = tree.getItems();
if (roots == null) return matches; if (roots == null)
if (matches == null) matches = new Vector(); return matches;
for (int idx = 0; idx < roots.length; idx++) { if (matches == null)
//System.out.println("recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);"); matches = new Vector();
matches = recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);
// try new map lookup method - won't work in cases of rename
if (!mappedFindAllRemoteItemReferences(elementObject, matches)){
for (int idx = 0; idx < roots.length; idx++) {
System.out.println("recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);");
matches = recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);
}
} }
return matches; return matches;
} }
@ -3967,11 +3972,14 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
Tree tree = getTree(); Tree tree = getTree();
Item[] roots = tree.getItems(); Item[] roots = tree.getItems();
if (roots == null) return matches; if (roots == null) return matches;
if (matches == null) matches = new Vector(); if (matches == null)
for (int idx = 0; idx < roots.length; idx++) matches = new Vector();
{
System.out.println("2:recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);"); // try new map lookup method - won't work in cases of rename
matches = recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches); if (!mappedFindAllRemoteItemReferences(elementObject, matches)){
for (int idx = 0; idx < roots.length; idx++){
matches = recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, matches);
}
} }
return matches; return matches;
} }
@ -3992,22 +4000,39 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
protected Item internalFindFirstRemoteItemReference(String searchString, Object elementObject, ISubSystem subsystem) { protected Item internalFindFirstRemoteItemReference(String searchString, Object elementObject, ISubSystem subsystem) {
Item[] roots = getTree().getItems(); Item[] roots = getTree().getItems();
if ((roots == null) || (roots.length == 0)) return null; if ((roots == null) || (roots.length == 0)) return null;
Item match = null;
if (debugRemote) { // use map first
System.out.println("Inside internalFindFirstRemoteItemReference for searchString: " + searchString + ", subsystem null? " + (subsystem == null) + ", nbr roots = " + roots.length); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ Item match = mappedFindFirstRemoteItemReference(elementObject);
}
for (int idx = 0; (match == null) && (idx < roots.length); idx++) { for (int idx = 0; (match == null) && (idx < roots.length); idx++) {
//System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)"); System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)");
match = recursiveFindFirstRemoteItemReference(roots[idx], searchString, elementObject, subsystem); match = recursiveFindFirstRemoteItemReference(roots[idx], searchString, elementObject, subsystem);
if (debugRemote) System.out.println("...Inside internalFindFirstRemoteItemReference. Result of searching root " + idx + ": " + roots[idx].getText() + ": " + match); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ if (debugRemote) System.out.println("...Inside internalFindFirstRemoteItemReference. Result of searching root " + idx + ": " + roots[idx].getText() + ": " + match); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
} }
if (debugRemote) {
System.out.println("...Inside internalFindFirstRemoteItemReference. Returning " + match); //$NON-NLS-1$
if (match != null) System.out.println("......set bp here"); //$NON-NLS-1$
}
return match; return match;
} }
protected Item mappedFindFirstRemoteItemReference(Object elementObject)
{
return (Item)findItem(elementObject);
}
protected boolean mappedFindAllRemoteItemReferences(Object elementObject, Vector occurrences)
{
Widget[] items = findItems(elementObject);
if (items.length > 0)
{
for (int i = 0; i < items.length; i++)
{
occurrences.add(items[i]);
}
return true;
}
return false;
}
/** /**
* Recursively tries to find all references to a remote object. * Recursively tries to find all references to a remote object.
* @param parent the parent item at which to start the search. * @param parent the parent item at which to start the search.
@ -4063,12 +4088,14 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
// recurse over children // recurse over children
Item[] items = getChildren(parent); Item[] items = getChildren(parent);
for (int i = 0; (i < items.length); i++) { for (int i = 0; (i < items.length); i++) {
System.out.println("3:recursiveFindAllRemoteItemReferences(roots[idx], searchString, elementObject, subsystem, occurrences);");
if (!items[i].isDisposed()) occurrences = recursiveFindAllRemoteItemReferences(items[i], elementName, elementObject, subsystem, occurrences); if (!items[i].isDisposed()) occurrences = recursiveFindAllRemoteItemReferences(items[i], elementName, elementObject, subsystem, occurrences);
} }
return occurrences; return occurrences;
} }
/** /**
* Recursively tries to find the first references to a remote object. * Recursively tries to find the first references to a remote object.
@ -4130,7 +4157,6 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
Item[] items = getChildren(parent); Item[] items = getChildren(parent);
Item match = null; Item match = null;
for (int i = 0; (match == null) && (i < items.length); i++) { for (int i = 0; (match == null) && (i < items.length); i++) {
//System.out.println("recursiveFindFirstRemoteItemReference(parentItem, remoteObjectName, remoteObject, subsystem)");
if (!items[i].isDisposed()) match = recursiveFindFirstRemoteItemReference(items[i], elementName, elementObject, subsystem); if (!items[i].isDisposed()) match = recursiveFindFirstRemoteItemReference(items[i], elementName, elementObject, subsystem);
} }
return match; return match;
@ -4149,11 +4175,10 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
Tree tree = getTree(); Tree tree = getTree();
Item[] roots = tree.getItems(); Item[] roots = tree.getItems();
if (roots == null) return matches; if (roots == null) return matches;
if (matches == null) matches = new Vector(); if (matches == null)
matches = new Vector();
for (int idx = 0; idx < roots.length; idx++){ for (int idx = 0; idx < roots.length; idx++){
// DKM
//System.out.println("recursiveFindAllRemoteItemFilterReferences");
matches = recursiveFindAllRemoteItemFilterReferences(roots[idx], elementName, subsystem, matches); matches = recursiveFindAllRemoteItemFilterReferences(roots[idx], elementName, subsystem, matches);
} }
return matches; return matches;
@ -4185,7 +4210,6 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
if (rawData instanceof ISystemFilterReference) { if (rawData instanceof ISystemFilterReference) {
ISystemFilterReference filterRef = (ISystemFilterReference) rawData; ISystemFilterReference filterRef = (ISystemFilterReference) rawData;
if (filterRef.getReferencedFilter().isPromptable()) return occurrences; if (filterRef.getReferencedFilter().isPromptable()) return occurrences;
if (debugRemote) System.out.println("Testing filter: " + filterRef.getReferencedFilter().getName()); //$NON-NLS-1$
ISubSystem fss = (ISubSystem) filterRef.getProvider(); ISubSystem fss = (ISubSystem) filterRef.getProvider();
if (fss != null) // should never happen!! if (fss != null) // should never happen!!
{ {
@ -4238,7 +4262,6 @@ ISelectionChangedListener, ITreeViewerListener, ISystemResourceChangeEvents, ISy
// recurse over children // recurse over children
Item[] items = getChildren(parent); Item[] items = getChildren(parent);
for (int i = 0; (i < items.length); i++) { for (int i = 0; (i < items.length); i++) {
//System.out.println("recursiveFindAllRemoteItemFilterReferences");
occurrences = recursiveFindAllRemoteItemFilterReferences(items[i], elementName, subsystem, occurrences); occurrences = recursiveFindAllRemoteItemFilterReferences(items[i], elementName, subsystem, occurrences);
} }
return occurrences; return occurrences;