diff --git a/CHANGELOG.md b/CHANGELOG.md index 05a2436..b157839 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [16.0.2-dev.1](https://github.com/ReVanced/revanced-patcher/compare/v16.0.1...v16.0.2-dev.1) (2023-10-06) + + +### Performance Improvements + +* Use a map to merge integrations classes ([6059d3c](https://github.com/ReVanced/revanced-patcher/commit/6059d3ca2685cb659023b171b95d4b9d279c6e53)) + ## [16.0.1](https://github.com/ReVanced/revanced-patcher/compare/v16.0.0...v16.0.1) (2023-10-05) diff --git a/gradle.properties b/gradle.properties index 821d36f..54994b9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true kotlin.code.style = official -version = 16.0.1 +version = 16.0.2-dev.1 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 34a694e..fd6a131 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() } }