mirror of
https://github.com/octoleo/syncthing.git
synced 2024-12-22 19:08:58 +00:00
Refactor: ints used in arithmetic should be signed
This commit is contained in:
parent
594918dd3c
commit
bc016e360e
@ -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.")
|
||||||
|
@ -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{
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user