diff --git a/internal/chunker/chunker_test.go b/internal/chunker/chunker_test.go index f44919f..520bcd6 100644 --- a/internal/chunker/chunker_test.go +++ b/internal/chunker/chunker_test.go @@ -53,7 +53,7 @@ func TestChunkerLargeFileMultipleChunks(t *testing.T) { } // Verify chunks reconstruct original data - var reconstructed []byte + reconstructed := make([]byte, 0, len(data)) for _, chunk := range chunks { reconstructed = append(reconstructed, chunk.Data...) } diff --git a/internal/snapshot/scanner.go b/internal/snapshot/scanner.go index 8e4b5cd..fc00251 100644 --- a/internal/snapshot/scanner.go +++ b/internal/snapshot/scanner.go @@ -624,11 +624,11 @@ func (s *Scanner) collectBatchFlushData( collectStart := time.Now() - var ( - allFileChunks []database.FileChunk - allChunkFiles []database.ChunkFile - ) - + // Every pending file contributes at least one file-chunk and one + // chunk-file mapping, so the file count is a safe lower bound for the + // initial capacity of both slices. + allFileChunks := make([]database.FileChunk, 0, len(canFlush)) + allChunkFiles := make([]database.ChunkFile, 0, len(canFlush)) allFileIDs := make([]types.FileID, 0, len(canFlush)) allFiles := make([]*database.File, 0, len(canFlush))