diff --git a/libraries/stdlib/jvm/src/kotlin/collections/builders/MapBuilder.kt b/libraries/stdlib/jvm/src/kotlin/collections/builders/MapBuilder.kt index 8ebd141d11d..ab91032a273 100644 --- a/libraries/stdlib/jvm/src/kotlin/collections/builders/MapBuilder.kt +++ b/libraries/stdlib/jvm/src/kotlin/collections/builders/MapBuilder.kt @@ -196,11 +196,10 @@ internal class MapBuilder private constructor( && gaps >= this.capacity / 4 // at least 25% of current capacity is occupied by gaps } - private fun ensureCapacity(capacity: Int) { - if (capacity < 0) throw OutOfMemoryError() // overflow - if (capacity > this.capacity) { - var newSize = this.capacity * 3 / 2 - if (capacity > newSize) newSize = capacity + private fun ensureCapacity(minCapacity: Int) { + if (minCapacity < 0) throw OutOfMemoryError() // overflow + if (minCapacity > this.capacity) { + val newSize = AbstractList.newCapacity(this.capacity, minCapacity) keysArray = keysArray.copyOfUninitializedElements(newSize) valuesArray = valuesArray?.copyOfUninitializedElements(newSize) presenceArray = presenceArray.copyOf(newSize) diff --git a/libraries/stdlib/native-wasm/src/kotlin/collections/HashMap.kt b/libraries/stdlib/native-wasm/src/kotlin/collections/HashMap.kt index 8c2584577aa..040f85919bd 100644 --- a/libraries/stdlib/native-wasm/src/kotlin/collections/HashMap.kt +++ b/libraries/stdlib/native-wasm/src/kotlin/collections/HashMap.kt @@ -193,11 +193,10 @@ actual class HashMap private constructor( && gaps >= this.capacity / 4 // at least 25% of current capacity is occupied by gaps } - private fun ensureCapacity(capacity: Int) { - if (capacity < 0) throw OutOfMemoryError() // overflow - if (capacity > this.capacity) { - var newSize = this.capacity * 3 / 2 - if (capacity > newSize) newSize = capacity + private fun ensureCapacity(minCapacity: Int) { + if (minCapacity < 0) throw OutOfMemoryError() // overflow + if (minCapacity > this.capacity) { + val newSize = AbstractList.newCapacity(this.capacity, minCapacity) keysArray = keysArray.copyOfUninitializedElements(newSize) valuesArray = valuesArray?.copyOfUninitializedElements(newSize) presenceArray = presenceArray.copyOf(newSize)