diff --git a/src/dorkbox/fsm/BaseByteBuilder.kt b/src/dorkbox/fsm/BaseByteBuilder.kt index aafe446..635881b 100644 --- a/src/dorkbox/fsm/BaseByteBuilder.kt +++ b/src/dorkbox/fsm/BaseByteBuilder.kt @@ -366,7 +366,12 @@ internal abstract class BaseByteBuilder { * free the unnecessary memory */ private fun loseWeight() { - base = base.copyOf(size + 65535) - check = check.copyOf(size + 65535) + val nbase = IntArray(size + 65535) + System.arraycopy(base, 0, nbase, 0, size) + base = nbase + + val ncheck = IntArray(size + 65535) + System.arraycopy(check, 0, ncheck, 0, check.size.coerceAtMost(ncheck.size)) + check = ncheck } } diff --git a/src/dorkbox/fsm/BaseCharBuilder.kt b/src/dorkbox/fsm/BaseCharBuilder.kt index 873e1e6..b5a97a0 100644 --- a/src/dorkbox/fsm/BaseCharBuilder.kt +++ b/src/dorkbox/fsm/BaseCharBuilder.kt @@ -369,7 +369,12 @@ internal abstract class BaseCharBuilder { * free the unnecessary memory */ private fun loseWeight() { - base = base.copyOf(size + 65535) - check = check.copyOf(size + 65535) + val nbase = IntArray(size + 65535) + System.arraycopy(base, 0, nbase, 0, size) + base = nbase + + val ncheck = IntArray(size + 65535) + System.arraycopy(check, 0, ncheck, 0, check.size.coerceAtMost(ncheck.size)) + check = ncheck } }