Spec-Zone.ru › Kotlin 2

withScopedMemoryAllocator

kotlin-stdlib/kotlin.wasm.unsafe/withScopedMemoryAllocator

Начиная с Kotlin: 1.8

inline fun <T> withScopedMemoryAllocator(block: (allocator: MemoryAllocator) -> T): T

Выполняет блок кода, передавая ему в качестве аргумента временный MemoryAllocator, и возвращает результат выполнения этого блока.

Освобождает всю память, выделенную с помощью предоставленного аллокатора, после выполнения блока.

Эта функция предназначена для упрощения обмена значениями с внешним миром через линейную память. Например:

val buffer_size = ...
withScopedMemoryAllocator { allocator ->
val buffer_address = allocator.allocate(buffer_size)
importedWasmFunctionThatWritesToBuffer(buffer_address, buffer_size)
return readDataFromBufferIntoManagedKotlinMemory(buffer_address, buffer_size)
}

ПРЕДУПРЕЖДЕНИЕ! Адреса, выделенные внутри функции блока, становятся недействительными после выхода из функции.

ПРЕДУПРЕЖДЕНИЕ! Вложенный вызов withScopedMemoryAllocator временно отключает аллокатор внешней области видимости на время выполнения вызова. Вызов MemoryAllocator.allocate для отключённого аллокатора приведёт к выбрасыванию IllegalStateException.

ПРЕДУПРЕЖДЕНИЕ! Обращение к аллокатору за пределами области видимости блока приведёт к выбрасыванию IllegalStateException.

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.wasm.unsafe/with-scoped-memory-allocator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API