From 2a7ee92a8a680fc17a8ba78db22bda8e08c80c46 Mon Sep 17 00:00:00 2001 From: David Inglis Date: Thu, 10 Jun 2004 20:30:42 +0000 Subject: [PATCH] fixed CPElement sorting https://bugs.eclipse.org/bugs/show_bug.cgi?id=66020 --- .../ui/dialogs/cpaths/CPElementSorter.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementSorter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementSorter.java index 46f1cf2d958..2234cb4885f 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementSorter.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/dialogs/cpaths/CPElementSorter.java @@ -61,12 +61,15 @@ public class CPElementSorter extends ViewerSorter { public void sort(Viewer viewer, Object[] elements) { // include paths and symbol definitions must not be sorted List sort = new ArrayList(elements.length); - List dontSort = new ArrayList(elements.length); - for(int i = 0; i < elements.length; i++) { + List includes = new ArrayList(elements.length); + List syms = new ArrayList(elements.length); + for (int i = 0; i < elements.length; i++) { if (elements[i] instanceof CPElement) { CPElement element = (CPElement)elements[i]; - if ( element.getEntryKind() == IPathEntry.CDT_INCLUDE || element.getEntryKind() == IPathEntry.CDT_MACRO) { - dontSort.add(elements[i]); + if (element.getEntryKind() == IPathEntry.CDT_INCLUDE) { + includes.add(elements[i]); + } else if (element.getEntryKind() == IPathEntry.CDT_MACRO) { + syms.add(elements[i]); } else { sort.add(elements[i]); } @@ -74,10 +77,10 @@ public class CPElementSorter extends ViewerSorter { sort.add(elements[i]); } } - Object[] sorted = new Object[elements.length]; - System.arraycopy(sort.toArray(), 0, sorted, 0, sort.size()); - super.sort(viewer, sorted); - System.arraycopy(dontSort.toArray(), 0, sorted, sort.size(), dontSort.size()); + System.arraycopy(sort.toArray(), 0, elements, 0, sort.size()); + super.sort(viewer, elements); + System.arraycopy(includes.toArray(), 0, elements, sort.size(), includes.size()); + System.arraycopy(syms.toArray(), 0, elements, sort.size() + includes.size(), syms.size()); } } \ No newline at end of file