From dfb5cc29f2f853dff8e38cae0ee7c7995a463b75 Mon Sep 17 00:00:00 2001 From: caseylove Date: Tue, 14 Jan 2025 22:33:52 +0800 Subject: [PATCH] chore(store): use the built-in `clear` to clear the map (#23381) Co-authored-by: Alex | Interchain Labs --- store/cachekv/store.go | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/store/cachekv/store.go b/store/cachekv/store.go index 3509cef6ae..33e39cb82f 100644 --- a/store/cachekv/store.go +++ b/store/cachekv/store.go @@ -104,12 +104,8 @@ func (store *Store) resetCaches() { // Clear the cache using the map clearing idiom // and not allocating fresh objects. // Please see https://bencher.orijtech.com/perfclinic/mapclearing/ - for key := range store.cache { - delete(store.cache, key) - } - for key := range store.unsortedCache { - delete(store.unsortedCache, key) - } + clear(store.cache) + clear(store.unsortedCache) } store.sortedCache = internal.NewBTree() } @@ -369,9 +365,7 @@ func (store *Store) dirtyItems(start, end []byte) { func (store *Store) clearUnsortedCacheSubset(unsorted []*kv.Pair, sortState sortState) { //nolint:staticcheck // We are in store v1. n := len(store.unsortedCache) if len(unsorted) == n { // This pattern allows the Go compiler to emit the map clearing idiom for the entire map. - for key := range store.unsortedCache { - delete(store.unsortedCache, key) - } + clear(store.unsortedCache) } else { // Otherwise, normally delete the unsorted keys from the map. for _, kv := range unsorted { delete(store.unsortedCache, conv.UnsafeBytesToStr(kv.Key))