Scripts: fix NPE during accessing ScriptDependenciesCache
Getting value from SLRUMap needs write lock, because it can move value from one queue to another EA-105195 Fixed
This commit is contained in:
@@ -163,11 +163,9 @@ private class ClearableLazyValue<in R, out T : Any>(
|
|||||||
private val compute: () -> T
|
private val compute: () -> T
|
||||||
) : ReadOnlyProperty<R, T> {
|
) : ReadOnlyProperty<R, T> {
|
||||||
override fun getValue(thisRef: R, property: KProperty<*>): T {
|
override fun getValue(thisRef: R, property: KProperty<*>): T {
|
||||||
lock.read {
|
lock.write {
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
lock.write {
|
value = compute()
|
||||||
value = compute()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return value!!
|
return value!!
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user