42 lines
2.6 KiB
Java
42 lines
2.6 KiB
Java
package kotlin.reflect.jvm.internal;
|
|
|
|
import java.lang.ref.SoftReference;
|
|
import kotlin.Metadata;
|
|
import kotlin.jvm.functions.Function1;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
import kotlin.jvm.internal.SourceDebugExtension;
|
|
|
|
@Metadata(d1 = {"\u0000&\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0004\b\u0003\u0018\u0000*\u0004\b\u0000\u0010\u00012\b\u0012\u0004\u0012\u0002H\u00010\u0002B\u001d\u0012\u0016\u0010\u0003\u001a\u0012\u0012\b\u0012\u0006\u0012\u0002\b\u00030\u0005\u0012\u0004\u0012\u00028\u00000\u0004¢\u0006\u0002\u0010\u0006J\b\u0010\t\u001a\u00020\nH\u0016J\u0019\u0010\u000b\u001a\u00028\u00002\n\u0010\f\u001a\u0006\u0012\u0002\b\u00030\u0005H\u0016¢\u0006\u0002\u0010\rR\u0014\u0010\u0007\u001a\b\u0012\u0004\u0012\u00028\u00000\bX\u0082\u000e¢\u0006\u0002\n\u0000¨\u0006\u000e"}, d2 = {"Lkotlin/reflect/jvm/internal/ClassValueCache;", "V", "Lkotlin/reflect/jvm/internal/CacheByClass;", "compute", "Lkotlin/Function1;", "Ljava/lang/Class;", "(Lkotlin/jvm/functions/Function1;)V", "classValue", "Lkotlin/reflect/jvm/internal/ComputableClassValue;", "clear", "", "get", "key", "(Ljava/lang/Class;)Ljava/lang/Object;", "kotlin-reflection"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
|
@SourceDebugExtension({"SMAP\nCacheByClass.kt\nKotlin\n*S Kotlin\n*F\n+ 1 CacheByClass.kt\nkotlin/reflect/jvm/internal/ClassValueCache\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n*L\n1#1,98:1\n1#2:99\n*E\n"})
|
|
/* loaded from: classes3.dex */
|
|
final class ClassValueCache<V> extends CacheByClass<V> {
|
|
private volatile ComputableClassValue<V> classValue;
|
|
|
|
public ClassValueCache(Function1<? super Class<?>, ? extends V> compute) {
|
|
Intrinsics.checkNotNullParameter(compute, "compute");
|
|
this.classValue = new ComputableClassValue<>(compute);
|
|
}
|
|
|
|
@Override // kotlin.reflect.jvm.internal.CacheByClass
|
|
public void clear() {
|
|
this.classValue = this.classValue.createNewCopy();
|
|
}
|
|
|
|
@Override // kotlin.reflect.jvm.internal.CacheByClass
|
|
public V get(Class<?> key) {
|
|
Object obj;
|
|
Object obj2;
|
|
Intrinsics.checkNotNullParameter(key, "key");
|
|
ComputableClassValue<V> computableClassValue = this.classValue;
|
|
obj = computableClassValue.get(key);
|
|
V v3 = (V) ((SoftReference) obj).get();
|
|
if (v3 != null) {
|
|
return v3;
|
|
}
|
|
computableClassValue.remove(key);
|
|
obj2 = computableClassValue.get(key);
|
|
V v4 = (V) ((SoftReference) obj2).get();
|
|
return v4 != null ? v4 : computableClassValue.compute.invoke(key);
|
|
}
|
|
}
|