shortcut for appending operations

This commit is contained in:
Chris Lu 2020-10-21 20:44:01 -07:00
parent b5917bf846
commit f5ee19e0db

View file

@ -129,6 +129,15 @@ func (c *ContinuousIntervals) AddInterval(data []byte, offset int64) {
interval := &IntervalNode{Data: data, Offset: offset, Size: int64(len(data))} interval := &IntervalNode{Data: data, Offset: offset, Size: int64(len(data))}
// append to the tail and return
if len(c.lists) == 1 {
lastSpan := c.lists[0]
if lastSpan.Tail.Offset + lastSpan.Tail.Size == offset {
lastSpan.addNodeToTail(interval)
return
}
}
var newLists []*IntervalLinkedList var newLists []*IntervalLinkedList
for _, list := range c.lists { for _, list := range c.lists {
// if list is to the left of new interval, add to the new list // if list is to the left of new interval, add to the new list