Как изменить одноэлементный объект в kotlin native - PullRequest
0 голосов
/ 07 июня 2019

Я добавляю поддержку целевого пакета linuxX64 для Kotlin в некоторые существующие библиотеки. Библиотека скомпилирована успешно, но во время выполнения тестовых случаев я получаю следующую ошибку времени выполнения:

kotlin.native.concurrent.InvalidMutabilityException: mutation attempt of frozen kotlin.Array@1249428
    at kfun:kotlin.Exception.<init>(kotlin.String?)kotlin.Exception (0x271205)
    at kfun:kotlin.RuntimeException.<init>(kotlin.String?)kotlin.RuntimeException (0x2711c5)
    at kfun:kotlin.native.concurrent.InvalidMutabilityException.<init>(kotlin.String)kotlin.native.concurrent.InvalidMutabilityException (0x272595)
    at ThrowInvalidMutabilityException (0x3b0b53)
    at  (0x3b5733)

Даже пример Object , приведенный в учебном пособии по языку Kotlin, не работает над созданием аналогичного исключения во время выполнения.

Я знаю, что проблема в замороженных объектах. Но я не смог найти правильный способ изменить замороженные элементы одноэлементного объекта.

1 Ответ

0 голосов
/ 12 июня 2019

После небольшого поиска я получил ответ.Мы можем обновить замороженный объект, используя Атомную ссылку .

...