提交 1fde9881 编写于 作者: H Hongze Cheng

refact and fix some bugs

上级 97d26ef1
......@@ -50,6 +50,7 @@ void tCoderClear(SCoder* pCoder) {
int tStartEncode(SCoder* pCoder) {
struct SCoderNode* pNode;
ASSERT(pCoder->type == TD_ENCODER);
if (pCoder->data) {
if (pCoder->size - pCoder->pos < sizeof(int32_t)) return -1;
......@@ -75,6 +76,7 @@ void tEndEncode(SCoder* pCoder) {
struct SCoderNode* pNode;
int32_t len;
ASSERT(pCoder->type == TD_ENCODER);
if (pCoder->data) {
pNode = TD_SLIST_HEAD(&(pCoder->stack));
ASSERT(pNode);
......@@ -92,7 +94,7 @@ void tEndEncode(SCoder* pCoder) {
tRPut32(pCoder->data + pCoder->pos, len);
}
TD_CODER_MOVE_POS(pCoder, len);
TD_CODER_MOVE_POS(pCoder, len + sizeof(int32_t));
free(pNode);
}
......@@ -102,6 +104,7 @@ int tStartDecode(SCoder* pCoder) {
int32_t len;
struct SCoderNode* pNode;
ASSERT(pCoder->type == TD_DECODER);
if (tDecodeI32(pCoder, &len) < 0) return -1;
pNode = malloc(sizeof(*pNode));
......@@ -121,10 +124,11 @@ int tStartDecode(SCoder* pCoder) {
}
void tEndDecode(SCoder* pCoder) {
ASSERT(tDecodeIsEnd(pCoder));
struct SCoderNode* pNode;
ASSERT(pCoder->type == TD_DECODER);
ASSERT(tDecodeIsEnd(pCoder));
pNode = TD_SLIST_HEAD(&(pCoder->stack));
ASSERT(pNode);
TD_SLIST_POP(&(pCoder->stack));
......
......@@ -305,7 +305,7 @@ static int tSFinalReq_v1_decode(SCoder *pCoder, SFinalReq_v1 *ps1) {
if (tDecodeI32(pCoder, &ps1->v_a) < 0) return -1;
if (tDecodeI8(pCoder, &ps1->v_b) < 0) return -1;
tEndEncode(pCoder);
tEndDecode(pCoder);
return 0;
}
......@@ -346,7 +346,7 @@ static int tSFinalReq_v2_decode(SCoder *pCoder, SFinalReq_v2 *ps2) {
if (tDecodeI16(pCoder, &ps2->v_c) < 0) return -1;
}
tEndEncode(pCoder);
tEndDecode(pCoder);
return 0;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册