From f1c388c623fee735871067b912e6f5632f33f772 Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Mon, 29 May 2023 00:13:32 +0200 Subject: [PATCH] index: remove redundant storage of indexmap size --- internal/index/indexmap.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/internal/index/indexmap.go b/internal/index/indexmap.go index 121ed09af..dfb4a1422 100644 --- a/internal/index/indexmap.go +++ b/internal/index/indexmap.go @@ -2,6 +2,7 @@ package index import ( "hash/maphash" + "math" "github.com/restic/restic/internal/restic" ) @@ -17,8 +18,7 @@ import ( // needs to be resized when the table grows, preventing memory usage spikes. type indexMap struct { // The number of buckets is always a power of two and never zero. - buckets []uint - numentries uint + buckets []uint mh maphash.Hash @@ -34,9 +34,9 @@ const ( // using id as the key. func (m *indexMap) add(id restic.ID, packIdx int, offset, length uint32, uncompressedLength uint32) { switch { - case m.numentries == 0: // Lazy initialization. + case m.len() == math.MaxUint: // Lazy initialization. m.init() - case m.numentries >= maxLoad*uint(len(m.buckets)): + case m.len() >= maxLoad*uint(len(m.buckets)): m.grow() } @@ -50,7 +50,6 @@ func (m *indexMap) add(id restic.ID, packIdx int, offset, length uint32, uncompr e.uncompressedLength = uncompressedLength m.buckets[h] = idx - m.numentries++ } // foreach calls fn for all entries in the map, until fn returns false. @@ -138,7 +137,7 @@ func (m *indexMap) init() { m.newEntry() } -func (m *indexMap) len() uint { return m.numentries } +func (m *indexMap) len() uint { return m.blockList.Size() - 1 } func (m *indexMap) newEntry() (*indexEntry, uint) { return m.blockList.Alloc()