X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Futil%2FBasket.java;h=d4348ce677baced38e9727666d734403aaaeef31;hb=HEAD;hp=bd981b6b190e32358216b9b98d540d84c286eaef;hpb=035c74c94642004eb47d4d7686095b62458d5599;p=org.ibex.util.git diff --git a/src/org/ibex/util/Basket.java b/src/org/ibex/util/Basket.java index bd981b6..d4348ce 100644 --- a/src/org/ibex/util/Basket.java +++ b/src/org/ibex/util/Basket.java @@ -76,9 +76,11 @@ public interface Basket extends Serializable { o[i] = obj; size++; } public Object set(int i, Object obj) { - if (i >= size) throw new IndexOutOfBoundsException( + if (i >= o.length) throw new IndexOutOfBoundsException( "index "+i+" is beyond list boundary "+size); - Object old = o[i]; o[i] = obj; return old; + Object old = o[i]; o[i] = obj; + size = Math.max(i+1, size); + return old; } public Object get(int i) { if (i >= size) throw new IndexOutOfBoundsException( @@ -319,7 +321,6 @@ public interface Basket extends Serializable { int dest = orig * indexmultiple; int tries = 1; boolean plus = true; - while (entries[dest] != null) { if (equals(k, entries[dest])) return dest; dest = Math.abs((orig + (plus ? 1 : -1) * tries * tries) % (entries.length / indexmultiple)) * indexmultiple;