From a947e12e276042bd3152fb17a8c8dbb1e4eb9a2c Mon Sep 17 00:00:00 2001 From: mdb Date: Tue, 19 Feb 2002 03:53:37 +0000 Subject: [PATCH] Only sort our array if it has more than one element; fixed a bug where _size was not being decremented after removing an item. git-svn-id: https://samskivert.googlecode.com/svn/trunk@586 6335cc39-0255-0410-8fd6-9bcaacd3b74c --- .../java/com/samskivert/util/SortableArrayList.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/projects/samskivert/src/java/com/samskivert/util/SortableArrayList.java b/projects/samskivert/src/java/com/samskivert/util/SortableArrayList.java index 5c22aa38..e1b2c844 100644 --- a/projects/samskivert/src/java/com/samskivert/util/SortableArrayList.java +++ b/projects/samskivert/src/java/com/samskivert/util/SortableArrayList.java @@ -1,5 +1,5 @@ // -// $Id: SortableArrayList.java,v 1.1 2002/02/19 03:38:58 mdb Exp $ +// $Id: SortableArrayList.java,v 1.2 2002/02/19 03:53:37 mdb Exp $ // // samskivert library - useful routines for java programs // Copyright (C) 2001 Michael Bayne @@ -62,7 +62,9 @@ public class SortableArrayList extends AbstractList */ public void sort (Comparator comp) { - QuickSort.csort(_elements, 0, _size, comp); + if (_size > 1) { + QuickSort.csort(_elements, 0, _size-1, comp); + } } // documentation inherited from interface @@ -156,7 +158,11 @@ public class SortableArrayList extends AbstractList // documentation inherited from interface public Object remove (int index) { - return ListUtil.remove(_elements, index); + Object removed = ListUtil.remove(_elements, index); + if (removed != null) { + _size--; + } + return removed; } // documentation inherited from interface