diff --git a/include/util/tbuffer.h b/include/util/tbuffer.h index 0516aba81b..83ba3a6cfa 100644 --- a/include/util/tbuffer.h +++ b/include/util/tbuffer.h @@ -23,7 +23,6 @@ extern "C" { #endif typedef struct SBuffer SBuffer; -typedef struct SBufferWriter SBufferWriter; typedef struct SBufferReader SBufferReader; // SBuffer @@ -52,11 +51,11 @@ static int32_t tBufferPutCStr(SBuffer *buffer, const char *str); static int32_t tBufferPutF32(SBuffer *buffer, float value); static int32_t tBufferPutF64(SBuffer *buffer, double value); -#define tBufferGetSize(buffer) ((buffer)->size) -#define tBufferGetCapacity(buffer) ((buffer)->capacity) -#define tBufferGetData(buffer) ((buffer)->data) -#define tBufferGetDataAt(buffer, idx) ((char *)(buffer)->data + (idx)) -#define tBufferGetDataEnd(buffer) ((char *)(buffer)->data + (buffer)->size) +#define tBufferGetSize(buffer) ((buffer)->size) +#define tBufferGetCapacity(buffer) ((buffer)->capacity) +#define tBufferGetData(buffer) ((buffer)->data) +#define tBufferGetDataAt(buffer, offset) ((char *)(buffer)->data + (offset)) +#define tBufferGetDataEnd(buffer) ((char *)(buffer)->data + (buffer)->size) // SBufferReader #define BUFFER_READER_INITIALIZER(offset, buffer) ((SBufferReader){offset, buffer}) diff --git a/include/util/tbuffer.inc b/include/util/tbuffer.inc index d55387ae1b..e0a7f57be8 100644 --- a/include/util/tbuffer.inc +++ b/include/util/tbuffer.inc @@ -22,12 +22,6 @@ struct SBuffer { void *data; }; -struct SBufferWriter { - bool forward; - uint32_t offset; - SBuffer *buffer; -}; - struct SBufferReader { uint32_t offset; SBuffer *buffer; @@ -175,7 +169,9 @@ static FORCE_INLINE int32_t tBufferGet(SBufferReader *reader, uint32_t size, voi if (reader->offset < 0 || reader->offset + size > reader->buffer->size) { return TSDB_CODE_OUT_OF_RANGE; } - memcpy(data, (char *)reader->buffer->data + reader->offset, size); + if (data) { + memcpy(data, BR_PTR(reader), size); + } reader->offset += size; return 0; } @@ -209,26 +205,25 @@ static int32_t tBufferGetU64(SBufferReader *reader, uint64_t *value) { } static int32_t tBufferGetU64v(SBufferReader *reader, uint64_t *value) { - uint8_t byte; - int32_t code; - - if (value) { - *value = 0; - } + uint8_t byte; + int32_t code; + uint64_t u64 = 0; for (int32_t i = 0;; i++) { code = tBufferGetU8(reader, &byte); if (code) return code; - if (value) { - *value |= (((uint64_t)(byte & 0x7F)) << (i * 7)); - } + u64 |= (((uint64_t)(byte & 0x7F)) << (i * 7)); if (byte < 0x80) { break; } } + if (value) { + *value = u64; + } + return 0; } @@ -299,10 +294,10 @@ static int32_t tBufferGetBinary(SBufferReader *reader, const void **data, uint32 return TSDB_CODE_OUT_OF_RANGE; } if (data) { - *data = (char *)reader->buffer->data + reader->offset; + *data = BR_PTR(reader); } reader->offset += tmpSize; - } else { + } else if (data) { *data = NULL; }