X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Futil%2FBalancedTree.java;h=36d854296075e7a923773a369f0a7d121df9bc15;hb=d892b1ff73b696e37812afd7d78c2eaae3342a0b;hp=1c42ef1643b1842da5bfd6abc8c572f874bc4ed3;hpb=2bfc4055cd215be961a882cab0256b038350f61a;p=org.ibex.core.git diff --git a/src/org/ibex/util/BalancedTree.java b/src/org/ibex/util/BalancedTree.java index 1c42ef1..36d8542 100644 --- a/src/org/ibex/util/BalancedTree.java +++ b/src/org/ibex/util/BalancedTree.java @@ -169,13 +169,14 @@ public class BalancedTree { // collisions when a single Object is inserted into multiple // trees int dest = Math.abs(o.hashCode() ^ this.hashCode()) % objects.length; + if (dest == 0) dest = 1; Object search = alloc ? null : o; int odest = dest; boolean plus = true; int tries = 1; while (objects[dest] != search || !(alloc || root(dest) == root)) { - if (dest == 0) dest++; dest = Math.abs((odest + (plus ? 1 : -1) * tries * tries) % objects.length); + if (dest == 0) dest=1; if (plus) tries++; plus = !plus; // FEATURE: GROW - if(tries > MAX_SLOT_DISTANCE) return -1;