From 832a0afe9c772000fdd1f1f545fd82c4619144f4 Mon Sep 17 00:00:00 2001 From: Robin Green Date: Tue, 28 Jun 2005 14:31:22 +0000 Subject: [PATCH] re PR libgcj/22189 (Table Full in gcj-dbtool if -m option used with smallest possible input) 2005-06-28 Robin Green PR java/22189 * gnu/gcj/runtime/PersistentByteMap.java (init): Fix rounding error. From-SVN: r101382 --- libjava/ChangeLog | 6 ++++++ libjava/gnu/gcj/runtime/PersistentByteMap.java | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) 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()