Fix buffer queue.

This commit is contained in:
shenweip
2014-01-13 21:44:05 +08:00
parent 108d592461
commit dc0d221900
+8 -1
View File
@@ -86,13 +86,20 @@ struct BufferQueue {
if (buf) {
if (start + bytesgot <= bufQueueSize) {
memcpy(buf, bufQueue + start, bytesgot);
start += bytesgot;
} else {
int firstSize = bufQueueSize - start;
memcpy(buf, bufQueue + start, firstSize);
memcpy(buf + firstSize, bufQueue, bytesgot - firstSize);
start = bytesgot - firstSize;
}
} else {
int firstSize = bufQueueSize - start;
if (start + bytesgot <= bufQueueSize)
start += bytesgot;
else
start = bytesgot - firstSize;
}
start = (start + bytesgot) % bufQueueSize;
return bytesgot;
}