From b28b2fc33c70fbb735b5757f309c83303040474a Mon Sep 17 00:00:00 2001 From: Fankesyooni Date: Mon, 4 Apr 2022 22:32:52 +0800 Subject: [PATCH] Fix an exception problem when using VariousClass to hook --- .../yukihookapi/hook/param/PackageParam.kt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt index f10362d8..b5f05389 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/param/PackageParam.kt @@ -229,7 +229,7 @@ open class PackageParam(private var wrapper: PackageParamWrapper? = null) { * @return [YukiHookCreater.Result] */ fun VariousClass.hook(isUseAppClassLoader: Boolean = true, initiate: YukiHookCreater.() -> Unit) = - get(if (isUseAppClassLoader) appClassLoader else null).hookClass.hook(isUseAppClassLoader, initiate) + hookClass(if (isUseAppClassLoader) appClassLoader else null).hook(isUseAppClassLoader, initiate) /** * Hook 方法、构造类 @@ -244,12 +244,11 @@ open class PackageParam(private var wrapper: PackageParamWrapper? = null) { * [VariousClass] 转换为 [HookClass] 并绑定到 [appClassLoader] * @return [HookClass] */ - private val VariousClass.hookClass - get() = try { - clazz.hookClass - } catch (e: Throwable) { - HookClass(name = "VariousClass", throwable = Throwable(e.message)) - } + private fun VariousClass.hookClass(loader: ClassLoader? = null) = try { + get(loader).hookClass + } catch (e: Throwable) { + HookClass(name = "VariousClass", throwable = Throwable(e.message)) + } /** * 将目标 [Class] 绑定到 [appClassLoader]