INNER CODE UNIT · Kotlin

ScopedHook

NexAlloy/NexAlloy · app/src/main/java/io/github/nexalloy/Helper.kt:117

class ScopedHook : XC_MethodHook() {
    inline fun hookInnerMethod(
        hookMethod: Member,
        crossinline before: IScopedHookCallback,
        crossinline after: IScopedHookCallback
    ) {
        hookMethod.hookMethod {
            before {
                val outerParam = outerParam.get() ?: return@before
                val depth = innerDepth.get() ?: 0
                innerDepth.set(depth + 1)
                before(ScopedHookParam(outerParam, depth), it)
            }

            after {
                val outerParam = outerParam.get() ?: return@after
                val depth = ((innerDepth.get() ?: 0) - 1).coerceAtLeast(0)
                innerDepth.set(depth)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…