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) {
|
int tStartEncode(SCoder* pCoder) {
|
||||||
struct SCoderNode* pNode;
|
struct SCoderNode* pNode;
|
||||||
|
|
||||||
|
ASSERT(pCoder->type == TD_ENCODER);
|
||||||
if (pCoder->data) {
|
if (pCoder->data) {
|
||||||
if (pCoder->size - pCoder->pos < sizeof(int32_t)) return -1;
|
if (pCoder->size - pCoder->pos < sizeof(int32_t)) return -1;
|
||||||
|
|
||||||
|
@ -75,6 +76,7 @@ void tEndEncode(SCoder* pCoder) {
|
||||||
struct SCoderNode* pNode;
|
struct SCoderNode* pNode;
|
||||||
int32_t len;
|
int32_t len;
|
||||||
|
|
||||||
|
ASSERT(pCoder->type == TD_ENCODER);
|
||||||
if (pCoder->data) {
|
if (pCoder->data) {
|
||||||
pNode = TD_SLIST_HEAD(&(pCoder->stack));
|
pNode = TD_SLIST_HEAD(&(pCoder->stack));
|
||||||
ASSERT(pNode);
|
ASSERT(pNode);
|
||||||
|
@ -92,7 +94,7 @@ void tEndEncode(SCoder* pCoder) {
|
||||||
tRPut32(pCoder->data + pCoder->pos, len);
|
tRPut32(pCoder->data + pCoder->pos, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
TD_CODER_MOVE_POS(pCoder, len);
|
TD_CODER_MOVE_POS(pCoder, len + sizeof(int32_t));
|
||||||
|
|
||||||
free(pNode);
|
free(pNode);
|
||||||
}
|
}
|
||||||
|
@ -102,6 +104,7 @@ int tStartDecode(SCoder* pCoder) {
|
||||||
int32_t len;
|
int32_t len;
|
||||||
struct SCoderNode* pNode;
|
struct SCoderNode* pNode;
|
||||||
|
|
||||||
|
ASSERT(pCoder->type == TD_DECODER);
|
||||||
if (tDecodeI32(pCoder, &len) < 0) return -1;
|
if (tDecodeI32(pCoder, &len) < 0) return -1;
|
||||||
|
|
||||||
pNode = malloc(sizeof(*pNode));
|
pNode = malloc(sizeof(*pNode));
|
||||||
|
@ -121,10 +124,11 @@ int tStartDecode(SCoder* pCoder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void tEndDecode(SCoder* pCoder) {
|
void tEndDecode(SCoder* pCoder) {
|
||||||
ASSERT(tDecodeIsEnd(pCoder));
|
|
||||||
|
|
||||||
struct SCoderNode* pNode;
|
struct SCoderNode* pNode;
|
||||||
|
|
||||||
|
ASSERT(pCoder->type == TD_DECODER);
|
||||||
|
ASSERT(tDecodeIsEnd(pCoder));
|
||||||
|
|
||||||
pNode = TD_SLIST_HEAD(&(pCoder->stack));
|
pNode = TD_SLIST_HEAD(&(pCoder->stack));
|
||||||
ASSERT(pNode);
|
ASSERT(pNode);
|
||||||
TD_SLIST_POP(&(pCoder->stack));
|
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 (tDecodeI32(pCoder, &ps1->v_a) < 0) return -1;
|
||||||
if (tDecodeI8(pCoder, &ps1->v_b) < 0) return -1;
|
if (tDecodeI8(pCoder, &ps1->v_b) < 0) return -1;
|
||||||
|
|
||||||
tEndEncode(pCoder);
|
tEndDecode(pCoder);
|
||||||
return 0;
|
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;
|
if (tDecodeI16(pCoder, &ps2->v_c) < 0) return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
tEndEncode(pCoder);
|
tEndDecode(pCoder);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue