Parcourir la source

Add `DynLibClassLoader.name`

Karlatemp il y a 4 ans
Parent
commit
94828544cb

+ 1 - 1
mirai-console/backend/mirai-console/src/internal/plugin/BuiltInJvmPluginLoaderImpl.kt

@@ -52,7 +52,7 @@ internal class BuiltInJvmPluginLoaderImpl(
 
 
     internal val jvmPluginLoadingCtx: JvmPluginsLoadingCtx by lazy {
-        val classLoader = DynLibClassLoader(BuiltInJvmPluginLoaderImpl::class.java.classLoader)
+        val classLoader = DynLibClassLoader(BuiltInJvmPluginLoaderImpl::class.java.classLoader, "GlobalShared")
         val ctx = JvmPluginsLoadingCtx(
             classLoader,
             mutableListOf(),

+ 4 - 2
mirai-console/backend/mirai-console/src/internal/plugin/JvmPluginClassLoader.kt

@@ -51,6 +51,7 @@ internal class JvmPluginsLoadingCtx(
 
 internal class DynLibClassLoader(
     parent: ClassLoader?,
+    private val clName: String? = null,
 ) : URLClassLoader(arrayOf(), parent) {
     companion object {
         init {
@@ -78,6 +79,7 @@ internal class DynLibClassLoader(
     }
 
     override fun toString(): String {
+        clName?.let { return "DynLibClassLoader{$it}" }
         return "DynLibClassLoader@" + hashCode()
     }
 }
@@ -130,8 +132,8 @@ internal class JvmPluginClassLoaderN : URLClassLoader {
                     pluginMainPackages.add(pkg)
                 }
         }
-        pluginSharedCL = DynLibClassLoader(ctx.sharedLibrariesLoader)
-        pluginIndependentCL = DynLibClassLoader(pluginSharedCL)
+        pluginSharedCL = DynLibClassLoader(ctx.sharedLibrariesLoader, "SharedCL{${file.name}}")
+        pluginIndependentCL = DynLibClassLoader(pluginSharedCL, "IndependentCL{${file.name}}")
         addURL(file.toURI().toURL())
     }