From baa53b5cf3c44a7c6d8879e279ce01a11098b474 Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Thu, 21 Oct 2021 12:48:43 +0300 Subject: [PATCH] [Wasm][Stdlib] Use array copy in String.toCharArray() And don't use copy during internal non-mutating algorithms --- .../stdlib/wasm/internal/kotlin/wasm/internal/ImportExport.kt | 2 +- libraries/stdlib/wasm/src/kotlin/Text.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/ImportExport.kt b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/ImportExport.kt index 944865aa11c..11f6c4471ef 100644 --- a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/ImportExport.kt +++ b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/ImportExport.kt @@ -14,7 +14,7 @@ internal fun exportString(src: String?): Int { val retAddr = unsafeGetScratchRawMemory(INT_SIZE_BYTES + src.length * CHAR_SIZE_BYTES) wasm_i32_store(retAddr, src.length) - unsafeCharArrayToRawMemory(src.toCharArray(), retAddr + INT_SIZE_BYTES) + unsafeCharArrayToRawMemory(src.chars, retAddr + INT_SIZE_BYTES) return retAddr } diff --git a/libraries/stdlib/wasm/src/kotlin/Text.kt b/libraries/stdlib/wasm/src/kotlin/Text.kt index d96889eccef..9a4b27511a4 100644 --- a/libraries/stdlib/wasm/src/kotlin/Text.kt +++ b/libraries/stdlib/wasm/src/kotlin/Text.kt @@ -288,7 +288,7 @@ public actual fun CharArray.concatToString(startIndex: Int, endIndex: Int): Stri */ @SinceKotlin("1.3") @ExperimentalStdlibApi -public actual fun String.toCharArray(): CharArray = this.chars +public actual fun String.toCharArray(): CharArray = this.chars.copyOf() /** * Returns a [CharArray] containing characters of this string or its substring.