From 1fde98815b40f4819ae89f2a3a8d98763e840a3e Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Mon, 3 Jan 2022 10:02:21 +0000 Subject: [PATCH] refact and fix some bugs --- source/util/src/encode.c | 10 +++++++--- source/util/test/encodeTest.cpp | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/source/util/src/encode.c b/source/util/src/encode.c index 71985845af..40c03ea051 100644 --- a/source/util/src/encode.c +++ b/source/util/src/encode.c @@ -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)); diff --git a/source/util/test/encodeTest.cpp b/source/util/test/encodeTest.cpp index b0e970eb07..ec4d9cd182 100644 --- a/source/util/test/encodeTest.cpp +++ b/source/util/test/encodeTest.cpp @@ -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; }