File tree Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -182,8 +182,11 @@ func (kcp *KCP) newSegment(size int) (seg segment) {
182
182
}
183
183
184
184
// delSegment recycles a KCP segment
185
- func (kcp * KCP ) delSegment (seg segment ) {
186
- xmitBuf .Put (seg .data )
185
+ func (kcp * KCP ) delSegment (seg * segment ) {
186
+ if seg .data != nil {
187
+ xmitBuf .Put (seg .data )
188
+ seg .data = nil
189
+ }
187
190
}
188
191
189
192
// PeekSize checks the size of next message in the recv queue
@@ -239,7 +242,7 @@ func (kcp *KCP) Recv(buffer []byte) (n int) {
239
242
buffer = buffer [len (seg .data ):]
240
243
n += len (seg .data )
241
244
count ++
242
- kcp .delSegment (* seg )
245
+ kcp .delSegment (seg )
243
246
if seg .frg == 0 {
244
247
break
245
248
}
@@ -412,7 +415,7 @@ func (kcp *KCP) parse_una(una uint32) {
412
415
for k := range kcp .snd_buf {
413
416
seg := & kcp .snd_buf [k ]
414
417
if _itimediff (una , seg .sn ) > 0 {
415
- kcp .delSegment (* seg )
418
+ kcp .delSegment (seg )
416
419
count ++
417
420
} else {
418
421
break
You can’t perform that action at this time.
0 commit comments