From 482b62c0c3fd38175eee20d3d059a5def3e1d9ee Mon Sep 17 00:00:00 2001 From: Him188 <Him188@mamoe.net> Date: Wed, 28 Jul 2021 13:29:33 +0800 Subject: [PATCH] Fix `LateinitMutableProperty`: ensure visibility --- .../src/commonMain/kotlin/LateinitMutableProperty.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mirai-core-utils/src/commonMain/kotlin/LateinitMutableProperty.kt b/mirai-core-utils/src/commonMain/kotlin/LateinitMutableProperty.kt index 3013018ba..e3a7bc0bc 100644 --- a/mirai-core-utils/src/commonMain/kotlin/LateinitMutableProperty.kt +++ b/mirai-core-utils/src/commonMain/kotlin/LateinitMutableProperty.kt @@ -36,9 +36,12 @@ private class LateinitMutableProperty<T>( val initializer = initializer if (initializer != null && this.value.value === UNINITIALIZED) { val value = initializer() - this.value.compareAndSet(UNINITIALIZED, value) // setValue prevails this.initializer = null - value + this.value.compareAndSet(UNINITIALIZED, value) // setValue prevails + this.value.value.let { + assert(it !== UNINITIALIZED) + return it as T + } } else this.value.value as T } else -> v as T