fix a bug in length calculation

pull/215/head
v2ray 2016-07-01 22:54:59 +02:00
parent 6ca4eaf3b6
commit 2169dcd7da
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
1 changed files with 10 additions and 9 deletions

View File

@ -60,16 +60,17 @@ func (this *SendingWindow) Remove(idx uint32) {
}
seg.Release()
this.data[pos] = nil
if pos == this.start {
if this.start == this.last {
this.len = 0
this.start = 0
this.last = 0
} else {
delta := this.next[pos] - this.start
this.start = this.next[pos]
this.len -= delta
if pos == this.start && pos == this.last {
this.len = 0
this.start = 0
this.last = 0
} else if pos == this.start {
delta := this.next[pos] - this.start
if this.next[pos] < this.start {
delta = this.next[pos] + this.cap - this.start
}
this.start = this.next[pos]
this.len -= delta
} else if pos == this.last {
this.last = this.prev[pos]
} else {