.class public final Lkotlin/reflect/jvm/internal/ModuleByClassLoaderKt; .super Ljava/lang/Object; .source "moduleByClassLoader.kt" # annotations .annotation system Ldalvik/annotation/SourceDebugExtension; value = "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" .end annotation .annotation runtime Lkotlin/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\u0008\u0010\u0005\u001a\u00020\u0006H\u0000\u001a\u0010\u0010\u0007\u001a\u00020\u0004*\u0006\u0012\u0002\u0008\u00030\u0008H\u0000\" \u0010\u0000\u001a\u0014\u0012\u0004\u0012\u00020\u0002\u0012\n\u0012\u0008\u0012\u0004\u0012\u00020\u00040\u00030\u0001X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\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 = 0x2 mv = { 0x1, 0x5, 0x1 } .end annotation # static fields .field private static final moduleByClassLoader:Ljava/util/concurrent/ConcurrentMap; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/concurrent/ConcurrentMap<", "Lkotlin/reflect/jvm/internal/WeakClassLoaderBox;", "Ljava/lang/ref/WeakReference<", "Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;", ">;>;" } .end annotation .end field # direct methods .method static constructor ()V .registers 1 .line 26 new-instance v0, Ljava/util/concurrent/ConcurrentHashMap; invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;->()V check-cast v0, Ljava/util/concurrent/ConcurrentMap; sput-object v0, Lkotlin/reflect/jvm/internal/ModuleByClassLoaderKt;->moduleByClassLoader:Ljava/util/concurrent/ConcurrentMap; return-void .end method .method public static final clearModuleByClassLoaderCache()V .registers 1 .line 73 sget-object v0, Lkotlin/reflect/jvm/internal/ModuleByClassLoaderKt;->moduleByClassLoader:Ljava/util/concurrent/ConcurrentMap; invoke-interface {v0}, Ljava/util/concurrent/ConcurrentMap;->clear()V return-void .end method .method public static final getOrCreateModule(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData; .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;)", "Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;" } .end annotation const-string v0, "$this$getOrCreateModule" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 48 invoke-static {p0}, Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/structure/ReflectClassUtilKt;->getSafeClassLoader(Ljava/lang/Class;)Ljava/lang/ClassLoader; move-result-object p0 .line 50 new-instance v0, Lkotlin/reflect/jvm/internal/WeakClassLoaderBox; invoke-direct {v0, p0}, Lkotlin/reflect/jvm/internal/WeakClassLoaderBox;->(Ljava/lang/ClassLoader;)V .line 52 sget-object v1, Lkotlin/reflect/jvm/internal/ModuleByClassLoaderKt;->moduleByClassLoader:Ljava/util/concurrent/ConcurrentMap; invoke-interface {v1, v0}, Ljava/util/concurrent/ConcurrentMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/lang/ref/WeakReference; if-eqz v2, :cond_29 .line 54 invoke-virtual {v2}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; move-result-object v3 check-cast v3, Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData; if-eqz v3, :cond_26 const-string p0, "it" invoke-static {v3, p0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V return-object v3 .line 55 :cond_26 invoke-interface {v1, v0, v2}, Ljava/util/concurrent/ConcurrentMap;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z .line 58 :cond_29 sget-object v1, Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData;->Companion:Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData$Companion; invoke-virtual {v1, p0}, Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData$Companion;->create(Ljava/lang/ClassLoader;)Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData; move-result-object p0 :goto_2f const/4 v1, 0x0 .line 61 :try_start_30 sget-object v2, Lkotlin/reflect/jvm/internal/ModuleByClassLoaderKt;->moduleByClassLoader:Ljava/util/concurrent/ConcurrentMap; new-instance v3, Ljava/lang/ref/WeakReference; invoke-direct {v3, p0}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V invoke-interface {v2, v0, v3}, Ljava/util/concurrent/ConcurrentMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/lang/ref/WeakReference; if-eqz v3, :cond_52 .line 63 invoke-virtual {v3}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; move-result-object v4 check-cast v4, Lkotlin/reflect/jvm/internal/impl/descriptors/runtime/components/RuntimeModuleData; :try_end_45 .catchall {:try_start_30 .. :try_end_45} :catchall_59 if-eqz v4, :cond_4e .line 68 move-object p0, v1 check-cast p0, Ljava/lang/ClassLoader; invoke-virtual {v0, v1}, Lkotlin/reflect/jvm/internal/WeakClassLoaderBox;->setTemporaryStrongRef(Ljava/lang/ClassLoader;)V return-object v4 .line 65 :cond_4e :try_start_4e invoke-interface {v2, v0, v3}, Ljava/util/concurrent/ConcurrentMap;->remove(Ljava/lang/Object;Ljava/lang/Object;)Z :try_end_51 .catchall {:try_start_4e .. :try_end_51} :catchall_59 goto :goto_2f .line 68 :cond_52 move-object v2, v1 check-cast v2, Ljava/lang/ClassLoader; invoke-virtual {v0, v1}, Lkotlin/reflect/jvm/internal/WeakClassLoaderBox;->setTemporaryStrongRef(Ljava/lang/ClassLoader;)V return-object p0 :catchall_59 move-exception p0 move-object v2, v1 check-cast v2, Ljava/lang/ClassLoader; invoke-virtual {v0, v1}, Lkotlin/reflect/jvm/internal/WeakClassLoaderBox;->setTemporaryStrongRef(Ljava/lang/ClassLoader;)V throw p0 .end method