|
@@ -2,7 +2,7 @@
|
|
|
#include "string.h"
|
|
|
#include "stdlib.h"
|
|
|
#include "lib_buffer.h"
|
|
|
-#define validLen (Object->push_size - Object->pop_size) //缓冲区有效长度
|
|
|
+#define VALID_LEN (Object->push_size - Object->pop_size) //缓冲区有效长度
|
|
|
int TBuffer_discard(TBufffer Object, int size) ;
|
|
|
|
|
|
TBufffer TBuffer_Init(TBuffferOBJ *data, void *buffer, int buff_size)
|
|
@@ -46,7 +46,11 @@ void TBuffer_Fini(TBuffferOBJ *data)
|
|
|
|
|
|
int TBuffer_Push(TBufffer Object, const void *data, int size)
|
|
|
{
|
|
|
- if( validLen < size)
|
|
|
+ int result = 0;
|
|
|
+ int _ValidLength = Object->push_size - Object->pop_size;
|
|
|
+ int _Size = Object->size - _ValidLength; //实际可用 为0?
|
|
|
+
|
|
|
+ if( _Size <= size )
|
|
|
{
|
|
|
TBuffer_discard(Object,size);
|
|
|
}
|
|
@@ -56,9 +60,6 @@ int TBuffer_Push(TBufffer Object, const void *data, int size)
|
|
|
TBuffer_Reset(Object);
|
|
|
}
|
|
|
|
|
|
- int result = 0;
|
|
|
- int _ValidLength = Object->push_size - Object->pop_size;
|
|
|
- int _Size = Object->size - _ValidLength; //实际可用 为0?
|
|
|
if (data == NULL)
|
|
|
{
|
|
|
result = -1;
|
|
@@ -103,7 +104,7 @@ int TBuffer_Peek(TBufffer Object, void *data, int size)//返回实际尺寸
|
|
|
if (size > 0 && Object->pop_size != Object->push_size)
|
|
|
{
|
|
|
int _ValidLength = Object->push_size - Object->pop_size;
|
|
|
- if (size > _ValidLength)//可能会push validLen变大 导致size变大越界
|
|
|
+ if (size > _ValidLength)//可能会push VALID_LEN变大 导致size变大越界
|
|
|
size = _ValidLength;
|
|
|
if (Object->pValid + size > Object->pTail)//需要分成两段copy
|
|
|
{
|
|
@@ -128,7 +129,7 @@ int TBuffer_Pop(TBufffer Object, void *data, int size)
|
|
|
else if (size > 0 && Object->pop_size != Object->push_size)
|
|
|
{
|
|
|
int _ValidLength = Object->push_size - Object->pop_size;
|
|
|
- if (size > _ValidLength)//可能会push validLen变大 导致size变大越界
|
|
|
+ if (size > _ValidLength)//可能会push VALID_LEN变大 导致size变大越界
|
|
|
size = _ValidLength;
|
|
|
|
|
|
if((Object->pValidTail - size) >= Object->pHead)
|
|
@@ -167,7 +168,7 @@ int TBuffer_Pop_head(TBufffer Object, void *data, int size)
|
|
|
else if (size > 0 && Object->pop_size != Object->push_size)
|
|
|
{
|
|
|
int _ValidLength = Object->push_size - Object->pop_size;
|
|
|
- if (size > _ValidLength)//可能会push validLen变大 导致size变大越界
|
|
|
+ if (size > _ValidLength)//可能会push VALID_LEN变大 导致size变大越界
|
|
|
size = _ValidLength;
|
|
|
if (Object->pValid + size > Object->pTail)//需要分成两段copy
|
|
|
{
|
|
@@ -198,7 +199,7 @@ int TBuffer_discard(TBufffer Object, int size)
|
|
|
if (size > 0 && Object->pop_size != Object->push_size)
|
|
|
{
|
|
|
int _ValidLength = Object->push_size - Object->pop_size;
|
|
|
- if (size > _ValidLength)//可能会push validLen变大 导致size变大越界
|
|
|
+ if (size > _ValidLength)//可能会push VALID_LEN变大 导致size变大越界
|
|
|
size = _ValidLength;
|
|
|
if (Object->pValid + size > Object->pTail)//需要分成两段copy
|
|
|
{
|