refact and fix some bugs
This commit is contained in:
parent
97d26ef10d
commit
1fde98815b
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue