Browse Source

fix sort bug

pull/778/head
Chris Lu 6 years ago
parent
commit
ee3fe07acf
  1. 20
      weed/filer2/filechunks.go

20
weed/filer2/filechunks.go

@ -96,10 +96,10 @@ func ViewFromChunks(chunks []*filer_pb.FileChunk, offset int64, size int) (views
func logPrintf(name string, visibles []*visibleInterval) { func logPrintf(name string, visibles []*visibleInterval) {
/* /*
log.Printf("%s len %d", name, len(visibles))
for _, v := range visibles {
log.Printf("%s: => %+v", name, v)
}
log.Printf("%s len %d", name, len(visibles))
for _, v := range visibles {
log.Printf("%s: => %+v", name, v)
}
*/ */
} }
@ -151,14 +151,17 @@ func mergeIntoVisibles(visibles, newVisibles []*visibleInterval, chunk *filer_pb
} }
newVisibles = append(newVisibles, newV) newVisibles = append(newVisibles, newV)
for i := len(newVisibles) - 1; i > 0; i-- {
if newV.start < newVisibles[i-1].start {
logPrintf(" append", newVisibles)
for i := len(newVisibles) - 1; i >= 0; i-- {
if i > 0 && newV.start < newVisibles[i-1].start {
newVisibles[i] = newVisibles[i-1] newVisibles[i] = newVisibles[i-1]
} else { } else {
newVisibles[i] = newV newVisibles[i] = newV
break break
} }
} }
logPrintf(" sorted", newVisibles)
return newVisibles return newVisibles
} }
@ -175,9 +178,10 @@ func nonOverlappingVisibleIntervals(chunks []*filer_pb.FileChunk) (visibles []*v
t := visibles[:0] t := visibles[:0]
visibles = newVislbles visibles = newVislbles
newVislbles = t newVislbles = t
}
logPrintf("visibles", visibles)
logPrintf("add", visibles)
}
return return
} }

Loading…
Cancel
Save