From 734ff3f83938a2adb69e34c78aac6b61e080e949 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Sun, 2 Jan 2022 06:48:48 +0000 Subject: [PATCH] refact --- include/util/encode.h | 14 +++++++------- source/util/src/encode.c | 10 +++++++--- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/include/util/encode.h b/include/util/encode.h index ee35791012..a3cbc9a42c 100644 --- a/include/util/encode.h +++ b/include/util/encode.h @@ -23,13 +23,6 @@ extern "C" { #endif -typedef struct { - td_endian_t endian; - uint8_t* data; - int32_t size; - int32_t pos; -} SEncoder, SDecoder; - #define tPut(TYPE, BUF, VAL) ((TYPE*)(BUF))[0] = (VAL) #define tGet(TYPE, BUF, VAL) (VAL) = ((TYPE*)(BUF))[0] @@ -57,6 +50,13 @@ typedef struct { #define tRGet32 tRPut32 #define tRGet64 tRPut64 +typedef struct { + td_endian_t endian; + uint8_t* data; + int32_t size; + int32_t pos; +} SEncoder, SDecoder; + #define TD_CODER_CURRENT(CODER) ((CODER)->data + (CODER)->pos) #define TD_CODER_MOVE_POS(CODER, MOVE) ((CODER)->pos += (MOVE)) #define TD_CHECK_CODER_CAPACITY_FAILED(CODER, EXPSIZE) (((CODER)->size - (CODER)->pos) < (EXPSIZE)) diff --git a/source/util/src/encode.c b/source/util/src/encode.c index 9e648bb281..dc1b926db0 100644 --- a/source/util/src/encode.c +++ b/source/util/src/encode.c @@ -56,8 +56,12 @@ void tCoderClear(SCoder* pCoder) { } int tStartEncode(SCoder* pCoder) { + struct SCoderNode* pNode; + if (pCoder->data) { - struct SCoderNode* pNode = malloc(sizeof(*pNode)); + if (pCoder->size - pCoder->pos < sizeof(int32_t)) return -1; + + pNode = malloc(sizeof(*pNode)); if (pNode == NULL) return -1; pNode->data = pCoder->data; @@ -97,11 +101,11 @@ int tStartDecode(SCoder* pCoder) { int32_t size; struct SCoderNode* pNode; + // TODO: if (tDecodeI32(pCoder, &size) < 0) return -1; + pNode = malloc(sizeof(*pNode)); if (pNode == NULL) return -1; - // TODO: tDecodeI32(pCoder, &size); - pNode->data = pCoder->data; pNode->pos = pCoder->pos; pNode->size = pCoder->size;