Files
adif-api-reverse-engineering/apk_decompiled/sources/kotlin/reflect/jvm/internal/ModuleByClassLoaderKt.java

54 lines
3.4 KiB
Java

package kotlin.reflect.jvm.internal;
import java.lang.ref.WeakReference;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.SourceDebugExtension;
import kotlin.reflect.jvm.internal.impl.descriptors.runtime.components.RuntimeModuleData;
import kotlin.reflect.jvm.internal.impl.descriptors.runtime.structure.ReflectClassUtilKt;
@Metadata(d1 = {"\u0000 \n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\u001a\b\u0010\u0005\u001a\u00020\u0006H\u0000\u001a\u0010\u0010\u0007\u001a\u00020\u0004*\u0006\u0012\u0002\b\u00030\bH\u0000\" \u0010\u0000\u001a\u0014\u0012\u0004\u0012\u00020\u0002\u0012\n\u0012\b\u0012\u0004\u0012\u00020\u00040\u00030\u0001X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\t"}, d2 = {"moduleByClassLoader", "Ljava/util/concurrent/ConcurrentMap;", "Lkotlin/reflect/jvm/internal/WeakClassLoaderBox;", "Ljava/lang/ref/WeakReference;", "Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;", "clearModuleByClassLoaderCache", "", "getOrCreateModule", "Ljava/lang/Class;", "kotlin-reflection"}, k = 2, mv = {1, 9, 0}, xi = 48)
@SourceDebugExtension({"SMAP\nmoduleByClassLoader.kt\nKotlin\n*S Kotlin\n*F\n+ 1 moduleByClassLoader.kt\nkotlin/reflect/jvm/internal/ModuleByClassLoaderKt\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n*L\n1#1,75:1\n1#2:76\n*E\n"})
/* loaded from: classes3.dex */
public final class ModuleByClassLoaderKt {
private static final ConcurrentMap<WeakClassLoaderBox, WeakReference<RuntimeModuleData>> moduleByClassLoader = new ConcurrentHashMap();
public static final void clearModuleByClassLoaderCache() {
moduleByClassLoader.clear();
}
public static final RuntimeModuleData getOrCreateModule(Class<?> cls) {
Intrinsics.checkNotNullParameter(cls, "<this>");
ClassLoader safeClassLoader = ReflectClassUtilKt.getSafeClassLoader(cls);
WeakClassLoaderBox weakClassLoaderBox = new WeakClassLoaderBox(safeClassLoader);
ConcurrentMap<WeakClassLoaderBox, WeakReference<RuntimeModuleData>> concurrentMap = moduleByClassLoader;
WeakReference<RuntimeModuleData> weakReference = concurrentMap.get(weakClassLoaderBox);
if (weakReference != null) {
RuntimeModuleData runtimeModuleData = weakReference.get();
if (runtimeModuleData != null) {
return runtimeModuleData;
}
concurrentMap.remove(weakClassLoaderBox, weakReference);
}
RuntimeModuleData create = RuntimeModuleData.Companion.create(safeClassLoader);
while (true) {
try {
ConcurrentMap<WeakClassLoaderBox, WeakReference<RuntimeModuleData>> concurrentMap2 = moduleByClassLoader;
WeakReference<RuntimeModuleData> putIfAbsent = concurrentMap2.putIfAbsent(weakClassLoaderBox, new WeakReference<>(create));
if (putIfAbsent == null) {
return create;
}
RuntimeModuleData runtimeModuleData2 = putIfAbsent.get();
if (runtimeModuleData2 != null) {
return runtimeModuleData2;
}
concurrentMap2.remove(weakClassLoaderBox, putIfAbsent);
} finally {
weakClassLoaderBox.setTemporaryStrongRef(null);
}
}
}
}