|
@@ -209,7 +209,7 @@ func (file *File) Update(time int, pos int, insLength int, delLength int) {
|
|
|
// insert our new interval
|
|
|
if iter.Item().Value == time && iter.Item().Key-delLength == pos {
|
|
|
prev := iter.Prev()
|
|
|
- if prev.Item().Value != time {
|
|
|
+ if prev.NegativeLimit() || prev.Item().Value != time {
|
|
|
iter.Item().Key = pos
|
|
|
} else {
|
|
|
tree.DeleteWithIterator(iter)
|
|
@@ -245,7 +245,7 @@ func (file *File) Update(time int, pos int, insLength int, delLength int) {
|
|
|
// recover the beginning
|
|
|
tree.Insert(rbtree.Item{Key: pos, Value: time})
|
|
|
}
|
|
|
- } else if (pos > origin.Key && previous.Value != origin.Value) ||
|
|
|
+ } else if (pos > origin.Key && previous != nil && previous.Value != origin.Value) ||
|
|
|
(pos == origin.Key && origin.Value != prevOrigin.Value) ||
|
|
|
pos == 0 {
|
|
|
// continue the original interval
|