added binary search to runAdd

This commit is contained in:
Todd Gruben 2017-12-21 15:12:35 -06:00
parent ed14ddf4d6
commit 89714c706d

View file

@ -1216,16 +1216,18 @@ func (c *container) runAdd(v uint16) bool {
c.runs = []interval16{{start: v, last: v}}
return true
}
i := 0
var iv interval16
for i, iv = range c.runs {
if iv.last >= v {
break
}
i := sort.Search(len(c.runs),
func(i int) bool { return c.runs[i].last >= v })
if i == len(c.runs){
i--
}
if v >= iv.start && iv.last >= v {
iv:=c.runs[i]
if v>= iv.start && iv.last>=v{
return false
}
c.unmap()
if iv.last < v {
if iv.last == v-1 {