From 683ebf085810c5837149af55d6e7f29138f24c58 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Mon, 13 Apr 2026 21:47:16 +0200 Subject: [PATCH] use pointer for entries hash was not passed on from FileHashingWorker --- filesmap.go | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/filesmap.go b/filesmap.go index be6ca47..d254dff 100644 --- a/filesmap.go +++ b/filesmap.go @@ -14,13 +14,13 @@ import ( // FilesMap is a struct for listing files by Size and Hash to search for duplicates type FilesMap struct { - Images []imageEntry + Images []*imageEntry FilesBySize map[int64]string FilesByHash map[string][]string - FilesHashing chan fileEntry - FilesHashed chan fileEntry - ImagesHashing chan imageEntry - ImagesHashed chan imageEntry + FilesHashing chan *fileEntry + FilesHashed chan *fileEntry + ImagesHashing chan *imageEntry + ImagesHashed chan *imageEntry progress *mpb.Progress incomingBar *mpb.Bar fileHashingBar *mpb.Bar @@ -32,10 +32,10 @@ func newFilesMap() *FilesMap { return &FilesMap{ FilesBySize: map[int64]string{}, FilesByHash: map[string][]string{}, - FilesHashed: make(chan fileEntry, 100000), - FilesHashing: make(chan fileEntry), - ImagesHashed: make(chan imageEntry, 100000), - ImagesHashing: make(chan imageEntry), + FilesHashed: make(chan *fileEntry, 100000), + FilesHashing: make(chan *fileEntry), + ImagesHashed: make(chan *imageEntry, 100000), + ImagesHashing: make(chan *imageEntry), progress: mpb.New(mpb.WithWidth(64)), } } @@ -49,7 +49,6 @@ func (fm *FilesMap) FileHashingWorker(wg *sync.WaitGroup) { hash, err := calculateFileHash(file.path) fm.fileHashingBar.IncrInt64(file.size) fm.FilesHashed <- file - if err != nil { fmt.Fprintf(fm.progress, "Error calculating Hash for file %s: %v\n", file.path, err) continue @@ -85,7 +84,7 @@ func (fm *FilesMap) ImageHashingWorker(wg *sync.WaitGroup) { func (fm *FilesMap) HashedWorker(done chan bool) { for file := range fm.FilesHashed { if *verbose { - fmt.Println("Finishing", file.path) + fmt.Printf("Finishing '%s' with hash '%s'\n", file.path, file.hash) } fm.lock.Lock() @@ -152,9 +151,9 @@ func (fm *FilesMap) hashFile(path string, size int64) int64 { fmt.Println("Incoming", path) } - fm.FilesHashing <- fileEntry{path, size, ""} + fm.FilesHashing <- &fileEntry{path, size, ""} if prevFile != "" { - fm.FilesHashing <- fileEntry{prevFile, size, ""} + fm.FilesHashing <- &fileEntry{prevFile, size, ""} return 2 } @@ -162,7 +161,7 @@ func (fm *FilesMap) hashFile(path string, size int64) int64 { } func (fm *FilesMap) hashImage(path string, size int64) { - fm.ImagesHashing <- imageEntry{path, size, 0} + fm.ImagesHashing <- &imageEntry{path, size, 0} } type imageEntry struct {