Made some slightly smarter merge blocks code
This commit is contained in:
parent
06e34792a1
commit
69a08312e8
1 changed files with 8 additions and 5 deletions
|
|
@ -33,19 +33,22 @@ func calculateChecksum(blocks []Block) int {
|
||||||
}
|
}
|
||||||
|
|
||||||
func mergeBlocks(blocks []Block) []Block {
|
func mergeBlocks(blocks []Block) []Block {
|
||||||
merged := []Block{}
|
if len(blocks) == 0 {
|
||||||
|
return blocks
|
||||||
|
}
|
||||||
|
|
||||||
|
merged := blocks[:0]
|
||||||
for _, block := range blocks {
|
for _, block := range blocks {
|
||||||
if block.id != nil {
|
if block.id != nil {
|
||||||
merged = append(merged, block)
|
merged = append(merged, block)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if merged[len(merged)-1].id == nil {
|
if len(merged) > 0 && merged[len(merged)-1].id == nil {
|
||||||
merged[len(merged)-1].size += block.size
|
merged[len(merged)-1].size += block.size
|
||||||
continue
|
} else {
|
||||||
|
merged = append(merged, block)
|
||||||
}
|
}
|
||||||
|
|
||||||
merged = append(merged, block)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return merged
|
return merged
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue