diff --git a/revanced-patcher/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt b/revanced-patcher/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt index 34a694ec..fd6a131f 100644 --- a/revanced-patcher/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt +++ b/revanced-patcher/src/main/kotlin/app/revanced/patcher/data/BytecodeContext.kt @@ -108,7 +108,8 @@ class BytecodeContext internal constructor(private val options: PatcherOptions) logger.info("Merging integrations") - // TODO: Multi-thread this. + val classMap = classes.associateBy { it.type } + this@Integrations.forEach { integrations -> MultiDexIO.readDexFile( true, @@ -116,8 +117,8 @@ class BytecodeContext internal constructor(private val options: PatcherOptions) null, null ).classes.forEach classDef@{ classDef -> - val existingClass = classes.find { it.type == classDef.type } ?: run { - logger.fine("Merging $classDef") + val existingClass = classMap[classDef.type] ?: run { + logger.fine("Adding $classDef") classes.add(classDef) return@classDef } @@ -131,7 +132,6 @@ class BytecodeContext internal constructor(private val options: PatcherOptions) } } } - clear() } }