forked from quic-go/quic-go
Merge pull request #3051 from q191201771/merge-packet-number-ranges
refactor merge packet number ranges
This commit is contained in:
@@ -44,23 +44,19 @@ func (h *receivedPacketHistory) addToRanges(p protocol.PacketNumber) bool /* is
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
var rangeExtended bool
|
|
||||||
if el.Value.End == p-1 { // extend a range at the end
|
if el.Value.End == p-1 { // extend a range at the end
|
||||||
rangeExtended = true
|
|
||||||
el.Value.End = p
|
el.Value.End = p
|
||||||
} else if el.Value.Start == p+1 { // extend a range at the beginning
|
return true
|
||||||
rangeExtended = true
|
|
||||||
el.Value.Start = p
|
|
||||||
}
|
}
|
||||||
|
if el.Value.Start == p+1 { // extend a range at the beginning
|
||||||
|
el.Value.Start = p
|
||||||
|
|
||||||
// if a range was extended (either at the beginning or at the end, maybe it is possible to merge two ranges into one)
|
|
||||||
if rangeExtended {
|
|
||||||
prev := el.Prev()
|
prev := el.Prev()
|
||||||
if prev != nil && prev.Value.End+1 == el.Value.Start { // merge two ranges
|
if prev != nil && prev.Value.End+1 == el.Value.Start { // merge two ranges
|
||||||
prev.Value.End = el.Value.End
|
prev.Value.End = el.Value.End
|
||||||
h.ranges.Remove(el)
|
h.ranges.Remove(el)
|
||||||
}
|
}
|
||||||
return true // if the two ranges were not merge, we're done here
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// create a new range at the end
|
// create a new range at the end
|
||||||
|
|||||||
Reference in New Issue
Block a user