Refactor: ints used in arithmetic should be signed

This commit is contained in:
Jakob Borg 2015-08-27 21:37:12 +02:00
parent 594918dd3c
commit bc016e360e
3 changed files with 8 additions and 8 deletions

View File

@ -19,7 +19,7 @@ import (
// workers are used in parallel. The outbox will become closed when the inbox // workers are used in parallel. The outbox will become closed when the inbox
// is closed and all items handled. // is closed and all items handled.
func newParallelHasher(dir string, blockSize, workers int, outbox, inbox chan protocol.FileInfo, counter *uint64, done chan struct{}) { func newParallelHasher(dir string, blockSize, workers int, outbox, inbox chan protocol.FileInfo, counter *int64, done chan struct{}) {
wg := sync.NewWaitGroup() wg := sync.NewWaitGroup()
wg.Add(workers) wg.Add(workers)
@ -39,7 +39,7 @@ func newParallelHasher(dir string, blockSize, workers int, outbox, inbox chan pr
}() }()
} }
func HashFile(path string, blockSize int, sizeHint int64, counter *uint64) ([]protocol.BlockInfo, error) { func HashFile(path string, blockSize int, sizeHint int64, counter *int64) ([]protocol.BlockInfo, error) {
fd, err := os.Open(path) fd, err := os.Open(path)
if err != nil { if err != nil {
if debug { if debug {
@ -63,7 +63,7 @@ func HashFile(path string, blockSize int, sizeHint int64, counter *uint64) ([]pr
return Blocks(fd, blockSize, sizeHint, counter) return Blocks(fd, blockSize, sizeHint, counter)
} }
func hashFiles(dir string, blockSize int, outbox, inbox chan protocol.FileInfo, counter *uint64) { func hashFiles(dir string, blockSize int, outbox, inbox chan protocol.FileInfo, counter *int64) {
for f := range inbox { for f := range inbox {
if f.IsDirectory() || f.IsDeleted() { if f.IsDirectory() || f.IsDeleted() {
panic("Bug. Asked to hash a directory or a deleted file.") panic("Bug. Asked to hash a directory or a deleted file.")

View File

@ -19,7 +19,7 @@ import (
var SHA256OfNothing = []uint8{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55} var SHA256OfNothing = []uint8{0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55}
// Blocks returns the blockwise hash of the reader. // Blocks returns the blockwise hash of the reader.
func Blocks(r io.Reader, blocksize int, sizehint int64, counter *uint64) ([]protocol.BlockInfo, error) { func Blocks(r io.Reader, blocksize int, sizehint int64, counter *int64) ([]protocol.BlockInfo, error) {
var blocks []protocol.BlockInfo var blocks []protocol.BlockInfo
if sizehint > 0 { if sizehint > 0 {
blocks = make([]protocol.BlockInfo, 0, int(sizehint/int64(blocksize))) blocks = make([]protocol.BlockInfo, 0, int(sizehint/int64(blocksize)))
@ -38,7 +38,7 @@ func Blocks(r io.Reader, blocksize int, sizehint int64, counter *uint64) ([]prot
} }
if counter != nil { if counter != nil {
atomic.AddUint64(counter, uint64(n)) atomic.AddInt64(counter, int64(n))
} }
b := protocol.BlockInfo{ b := protocol.BlockInfo{

View File

@ -139,10 +139,10 @@ func (w *Walker) Walk() (chan protocol.FileInfo, error) {
// which it receives the files we ask it to hash. // which it receives the files we ask it to hash.
go func() { go func() {
var filesToHash []protocol.FileInfo var filesToHash []protocol.FileInfo
var total, progress uint64 var total, progress int64
for file := range toHashChan { for file := range toHashChan {
filesToHash = append(filesToHash, file) filesToHash = append(filesToHash, file)
total += uint64(file.CachedSize) total += int64(file.CachedSize)
} }
realToHashChan := make(chan protocol.FileInfo) realToHashChan := make(chan protocol.FileInfo)
@ -161,7 +161,7 @@ func (w *Walker) Walk() (chan protocol.FileInfo, error) {
ticker.Stop() ticker.Stop()
return return
case <-ticker.C: case <-ticker.C:
current := atomic.LoadUint64(&progress) current := atomic.LoadInt64(&progress)
if debug { if debug {
l.Debugf("Walk %s %s current progress %d/%d (%d%%)", w.Dir, w.Subs, current, total, current*100/total) l.Debugf("Walk %s %s current progress %d/%d (%d%%)", w.Dir, w.Subs, current, total, current*100/total)
} }