fix(youtube/litho-filter): use correct type for switch case (#1068)

Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
Canny 2022-11-18 22:13:09 +03:00 committed by GitHub
parent 7c3b4e2036
commit ab03511e23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 25 deletions

View File

@ -47,15 +47,15 @@ class LithoFilterPatch : BytecodePatch(
addInstructions( addInstructions(
insertHookIndex, // right after setting the component.pathBuilder field, insertHookIndex, // right after setting the component.pathBuilder field,
""" """
invoke-static {v5, v2}, Lapp/revanced/integrations/patches/LithoFilterPatch;->filter(Ljava/lang/StringBuilder;Ljava/lang/String;)Z invoke-static {v5, v2}, Lapp/revanced/integrations/patches/LithoFilterPatch;->filter(Ljava/lang/StringBuilder;Ljava/lang/String;)Z
move-result v$clobberedRegister move-result v$clobberedRegister
if-eqz v$clobberedRegister, :not_an_ad if-eqz v$clobberedRegister, :not_an_ad
move-object/from16 v2, p1 move-object/from16 v2, p1
invoke-static {v2}, $builderMethodDescriptor invoke-static {v2}, $builderMethodDescriptor
move-result-object v0 move-result-object v0
iget-object v0, v0, $emptyComponentFieldDescriptor iget-object v0, v0, $emptyComponentFieldDescriptor
return-object v0 return-object v0
""", """,
listOf(ExternalLabel("not_an_ad", instruction(insertHookIndex))) listOf(ExternalLabel("not_an_ad", instruction(insertHookIndex)))
) )
} }
@ -65,22 +65,14 @@ class LithoFilterPatch : BytecodePatch(
} }
private companion object { private companion object {
fun Instruction.toDescriptor() = when (val reference = (this as ReferenceInstruction).reference) { fun Instruction.toDescriptor() = when (val reference = (this as? ReferenceInstruction)?.reference) {
MethodReference::class -> { is MethodReference -> "${reference.definingClass}->${reference.name}(${
val methodReference = reference as MethodReference reference.parameterTypes.joinToString(
"${methodReference.definingClass}->${methodReference.name}(${ ""
methodReference.parameterTypes.joinToString( ) { it }
"" })${reference.returnType}"
) { it } is FieldReference -> "${reference.definingClass}->${reference.name}:${reference.type}"
})${methodReference.returnType}"
}
FieldReference::class -> {
val fieldReference = reference as FieldReference
"${fieldReference.definingClass}->${fieldReference.name}:${fieldReference.type}"
}
else -> throw PatchResultError("Unsupported reference type") else -> throw PatchResultError("Unsupported reference type")
} }
} }
} }