diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 0a400b1f374..2705cee3344 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2005-06-28 Robin Green + + PR java/22189 + * gnu/gcj/runtime/PersistentByteMap.java (init): Fix rounding + error. + 2005-06-27 Tom Tromey PR java/21540, PR java/13788: diff --git a/libjava/gnu/gcj/runtime/PersistentByteMap.java b/libjava/gnu/gcj/runtime/PersistentByteMap.java index a2b91da84fa..fec30806f81 100644 --- a/libjava/gnu/gcj/runtime/PersistentByteMap.java +++ b/libjava/gnu/gcj/runtime/PersistentByteMap.java @@ -175,10 +175,10 @@ public class PersistentByteMap // We're going to make that size prime. This isn't // strictly necessary but it can't hurt. // - // We expand the size by 3/2 because the hash table is - // intolerably slow when more than 2/3 full. + // We expand the size by 3/2 and round the result because the + // hash table is intolerably slow when more than 2/3 full. - BigInteger size = new BigInteger(Integer.toString(capacity * 3/2)); + BigInteger size = new BigInteger(Integer.toString(((capacity*3)+1)/2)); BigInteger two = BigInteger.ONE.add(BigInteger.ONE); if (size.getLowestSetBit() != 0) // A hard way to say isEven()