aboutsummaryrefslogtreecommitdiff
path: root/repo.go
diff options
context:
space:
mode:
authorn-peugnet <n.peugnet@free.fr>2021-08-31 18:08:14 +0200
committern-peugnet <n.peugnet@free.fr>2021-08-31 18:08:14 +0200
commit72ec5a391646014531727fb3a71987d87b8a6933 (patch)
treef4e7050ba2fec9b8d947e1203929fbd065d518c7 /repo.go
parente207ff4759e9e2aba9b4938f54ed2f31d362f7ee (diff)
downloaddna-backup-72ec5a391646014531727fb3a71987d87b8a6933.tar.gz
dna-backup-72ec5a391646014531727fb3a71987d87b8a6933.zip
split extractTempChunks into 2 funcs
Diffstat (limited to 'repo.go')
-rw-r--r--repo.go15
1 files changed, 13 insertions, 2 deletions
diff --git a/repo.go b/repo.go
index a987dc6..ea27fb4 100644
--- a/repo.go
+++ b/repo.go
@@ -321,10 +321,10 @@ func (r *Repo) matchStream(stream io.Reader, fingerprints FingerprintMap) []Chun
return chunks
}
-// extractTempChunks extracts temporary chunks from an array of chunks.
+// mergeTempChunks joins temporary partial chunks from an array of chunks if possible.
// If a chunk is smaller than the size required to calculate a super-feature,
// it is then appended to the previous consecutive temporary chunk if it exists.
-func extractTempChunks(chunks []Chunk) (ret []Chunk) {
+func mergeTempChunks(chunks []Chunk) (ret []Chunk) {
var prev *TempChunk
var curr *TempChunk
for _, c := range chunks {
@@ -335,6 +335,7 @@ func extractTempChunks(chunks []Chunk) (ret []Chunk) {
} else if curr != nil {
ret = append(ret, curr)
}
+ ret = append(ret, c)
curr = nil
prev = nil
} else {
@@ -351,6 +352,16 @@ func extractTempChunks(chunks []Chunk) (ret []Chunk) {
return
}
+func extractTempChunks(chunks []Chunk) (ret []*TempChunk) {
+ for _, c := range chunks {
+ tmp, isTmp := c.(*TempChunk)
+ if isTmp {
+ ret = append(ret, tmp)
+ }
+ }
+ return
+}
+
func writeFile(filePath string, object interface{}) error {
file, err := os.Create(filePath)
if err == nil {