From 646ca310c637e67e3dc0ca01e6b0a88732245097 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 3 Oct 2022 10:00:21 +0800 Subject: [PATCH] Repo // Updating bleachSpecifiedSuggestions() to add batch processing. --- .../LangModelAssembly/SubLMs/lmUserOverride.swift | 9 ++++++--- Source/Modules/LMMgr.swift | 6 +++--- Source/Modules/SessionCtl_Delegates.swift | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Packages/vChewing_LangModelAssembly/Sources/LangModelAssembly/SubLMs/lmUserOverride.swift b/Packages/vChewing_LangModelAssembly/Sources/LangModelAssembly/SubLMs/lmUserOverride.swift index 28fefc51..414f36b2 100644 --- a/Packages/vChewing_LangModelAssembly/Sources/LangModelAssembly/SubLMs/lmUserOverride.swift +++ b/Packages/vChewing_LangModelAssembly/Sources/LangModelAssembly/SubLMs/lmUserOverride.swift @@ -154,10 +154,13 @@ extension vChewingLM.LMUserOverride { // MARK: - Hash and Dehash the entire UOM data, etc. extension vChewingLM.LMUserOverride { - public func bleachSpecifiedSuggestions(target: String, saveCallback: @escaping () -> Void) { + public func bleachSpecifiedSuggestions(targets: [String], saveCallback: @escaping () -> Void) { + if targets.isEmpty { return } for neta in mutLRUMap { - if neta.value.observation.overrides.keys.contains(target) { - mutLRUMap.removeValue(forKey: neta.key) + for target in targets { + if neta.value.observation.overrides.keys.contains(target) { + mutLRUMap.removeValue(forKey: neta.key) + } } } resetMRUList() diff --git a/Source/Modules/LMMgr.swift b/Source/Modules/LMMgr.swift index fb244910..dbb37851 100644 --- a/Source/Modules/LMMgr.swift +++ b/Source/Modules/LMMgr.swift @@ -610,12 +610,12 @@ public enum LMMgr { group.notify(queue: DispatchQueue.main) {} } - public static func bleachSpecifiedSuggestions(target: String, mode: Shared.InputMode) { + public static func bleachSpecifiedSuggestions(targets: [String], mode: Shared.InputMode) { switch mode { case .imeModeCHS: - Self.uomCHT.bleachSpecifiedSuggestions(target: target, saveCallback: { Self.uomCHT.saveData() }) + Self.uomCHT.bleachSpecifiedSuggestions(targets: targets, saveCallback: { Self.uomCHT.saveData() }) case .imeModeCHT: - Self.uomCHS.bleachSpecifiedSuggestions(target: target, saveCallback: { Self.uomCHS.saveData() }) + Self.uomCHS.bleachSpecifiedSuggestions(targets: targets, saveCallback: { Self.uomCHS.saveData() }) case .imeModeNULL: break } diff --git a/Source/Modules/SessionCtl_Delegates.swift b/Source/Modules/SessionCtl_Delegates.swift index 722994f3..88e7e104 100644 --- a/Source/Modules/SessionCtl_Delegates.swift +++ b/Source/Modules/SessionCtl_Delegates.swift @@ -43,8 +43,8 @@ extension SessionCtl: KeyHandlerDelegate { let rawPair = state.data.userPhraseKVPair let valueCurrent = rawPair.1 let valueReversed = ChineseConverter.crossConvert(rawPair.1) - LMMgr.bleachSpecifiedSuggestions(target: valueCurrent, mode: IMEApp.currentInputMode) - LMMgr.bleachSpecifiedSuggestions(target: valueReversed, mode: IMEApp.currentInputMode.reversed) + LMMgr.bleachSpecifiedSuggestions(targets: [valueCurrent], mode: IMEApp.currentInputMode) + LMMgr.bleachSpecifiedSuggestions(targets: [valueReversed], mode: IMEApp.currentInputMode.reversed) // 清詞完畢 return true }