RFR: [6904367]: (coll) IdentityHashMap is resized before exceeding the expected maximum size

Peter Levart peter.levart at gmail.com
Sat Jul 12 19:20:06 UTC 2014


On 07/12/2014 08:12 PM, Peter Levart wrote:
> (3 * size < 2 * highestOneBit(3*size)) is true for any size, so IHM 
> will never be resized if filled with size elements and table was 
> preallocated with length =
> 2 * highestOneBit(3*size) even if condition for resizing is changed 
> from (3*size > length) to (3*size >= length). Current condition 
> sometimes resizes a little to late when preallocation would already 
> create a bigger table.

May latest statement is of course false. If length is a power of two, 
then it can never be equal 3*size. For power of two lengths, both 
conditions are equivalent. But for my purpose the >= is better...

Peter




More information about the core-libs-dev mailing list