From 5f93706d915dcf3d18b8be7d29f138cbff6f95be Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Fri, 11 Apr 2025 22:39:18 +0600 Subject: [PATCH] Small performance optimization of MutableMap.applyDiff --- CHANGELOG.md | 3 +++ .../kotlin/dev/inmo/micro_utils/common/MapDiff.kt | 6 ++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ce523441e9..a86146be12e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 0.25.5 +* `Common`: + * Small performance optimization of `MutableMap.applyDiff` + ## 0.25.4 * `Versions`: diff --git a/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/MapDiff.kt b/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/MapDiff.kt index dc275c347d1..c3d5bfed2e9 100644 --- a/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/MapDiff.kt +++ b/common/src/commonMain/kotlin/dev/inmo/micro_utils/common/MapDiff.kt @@ -82,13 +82,11 @@ fun MutableMap.applyDiff( mapDiff: MapDiff ) { mapDiff.apply { - removed.keys.forEach { remove(it) } + keys.removeAll(removed.keys) changed.forEach { (k, oldNew) -> put(k, oldNew.second) } - added.forEach { (k, new) -> - put(k, new) - } + putAll(added) } }