From 93d1c57390f9d3c9f765c23144362e3466953254 Mon Sep 17 00:00:00 2001 From: inotia00 Date: Mon, 3 Jul 2023 19:29:54 +0900 Subject: [PATCH] fix(youtube/litho-filter): Incorrect dex syntax --- .../youtube/utils/litho/patch/LithoFilterPatch.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/litho/patch/LithoFilterPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/litho/patch/LithoFilterPatch.kt index b00cb4a27..153c04fcb 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/litho/patch/LithoFilterPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/litho/patch/LithoFilterPatch.kt @@ -49,13 +49,12 @@ class LithoFilterPatch : BytecodePatch( addFilter = { classDescriptor -> addInstructions( - 2, - """ + 2, """ new-instance v1, $classDescriptor invoke-direct {v1}, $classDescriptor->()V - const/4 v2, ${filterCount++} + ${getConstString(2, filterCount++)} aput-object v1, v0, v2 - """ + """ ) } } ?: return LithoFilterFingerprint.toErrorResult() @@ -64,12 +63,17 @@ class LithoFilterPatch : BytecodePatch( } override fun close() = LithoFilterFingerprint.result!! - .mutableMethod.replaceInstruction(0, "const/4 v0, $filterCount") + .mutableMethod.replaceInstruction(0, getConstString(0, filterCount)) companion object { internal lateinit var addFilter: (String) -> Unit private set private var filterCount = 0 + + private fun getConstString( + register: Int, + count: Int + ): String = if (count >= 8) "const/16 v$register, $count" else "const/4 v$register, $count" } }